Ошибка свертывания: неожиданный токен: имя

Я пытаюсь использовать Rollup для объединения и встряхивания моего существующего проекта. Однако я получаю следующую ошибку.

Экспорт «Клиент» не определен «C:\Users\George\Source\Repos\docs\client\service\search.service.js». Ошибка преобразования пакета с плагином «uglify»: SyntaxError: Неожиданный токен: имя (UiService)

вот мой search.service.ts:

import { Injectable } from '@angular/core';
import * as elasticsearch from 'elasticsearch';
//declare var elasticsearch: any;

@Injectable()
export class SearchService {
    private Client: elasticsearch.Client;
    constructor() {
        var connectionString = 'https://paas:[email protected]';
        this.Client = new elasticsearch.Client({
            host: connectionString,
            log: 'trace'
        });
    }

    search(term: string): any {
        return this.Client.search({
            index: 'plugins',
            type: 'ds044699_mlab_com_cdc1',
            body: {
                query: {
                    multi_match: {
                        query: term,
                        fields: ['name', 'description']
                    }
                }
            }
        });
    }
}

а вот мой ui.service.ts:

import { Injectable } from '@angular/core';
import { Subject } from 'rxjs/Subject';

@Injectable()
export class UiService {
    chapters: string;
    // Observable boolean streams
    navState$ = this.navStateSource.asObservable();
    chapter = this._chapter.asObservable();

    // Observable boolean sources
    private navStateSource = new Subject<boolean>();
    private _chapter: Subject<number> = new Subject<number>();

    // Service message commands
    changeNavState(showNav: boolean) {
        this.navStateSource.next(showNav);
    }

    changeChapter(chapter: number) {
        this._chapter.next(chapter);
    }
}

Я не вижу, что не так с любым из этих файлов? - Где я должен искать?


person George Edwards    schedule 11.10.2016    source источник


Ответы (1)


Для первой ошибки (Export 'Client' is not defined by...) вам, вероятно, нужно использовать параметр namedExports с rollup-plugin-commonjs. Мы только что выпустили новую версию Rollup, которая делает это сообщение более понятным и содержит ссылки на Устранение неполадок.

Второе сообщение похоже на то, что оно, вероятно, связано с тем, что UglifyJS не минимизирует код ES6. Возможно, вам потребуется настроить таргетинг на ES5 в вашей конфигурации TypeScript (я думаю, что я не использую TypeScript) или добавить преобразование, например rollup-plugin-buble или rollup-plugin-babel преобразовать его в ES5 перед минификацией.

person Rich Harris    schedule 12.10.2016
comment
Большое спасибо за ответ. Я компилирую это в модуль стиля es2015 с помощью TypeScript, вы можете увидеть параметры компилятора здесь - значит, это не должен быть обычный модуль JS? - person George Edwards; 12.10.2016