Неожиданный экспорт токена — Angular 2

Я пытаюсь импортировать import {UpgradeComponent} из '@angular/upgrade/static'; для использования директивы angular1 в angular2 с использованием ngupgrade, но я получаю эту ошибку.

Код:

import { Directive, ElementRef, Injector } from '@angular/core';
import { UpgradeComponent } from '@angular/upgrade/static';
@Directive({
  selector: 'help'
})
export class HelpComponentA1Directive extends UpgradeComponent {
  constructor(elementRef: ElementRef, injector: Injector) {
      super('help', elementRef, injector);
  }
}

person John Samuel    schedule 02.12.2016    source источник
comment
где ошибка? покажи трассировку стека ошибки пожалуйста   -  person Rehban Khatri    schedule 03.12.2016
comment
Rehban, Сообщение об ошибке: main.bundle.js:84 Uncaught SyntaxError: непредвиденная ошибка экспорта токена, показанная в консоли в разделе-> export {downgradeComponent} from './src/aot/downgrade_component';   -  person John Samuel    schedule 03.12.2016
comment
@johnsam Stacktrace означает, что вы должны публиковать не одну строку, а стек вызовов из корня.   -  person Roman C    schedule 03.12.2016
comment
@romanc: спасибо, что уделили этому время, экспортируйте {downgradeComponent} из './src/aot/downgrade_component'; -› в консоли отображается ошибка в самой первой строке export {downgradeInjectable} from './src/aot/downgrade_injectable'; экспортировать {UpgradeComponent} из './src/aot/upgrade_component'; экспортировать {UpgradeModule} из './src/aot/upgrade_module';   -  person John Samuel    schedule 05.12.2016


Ответы (1)


export не является ключевым словом javascript, каким-то образом ваш браузер загружает файл .ts, когда он должен загружать скомпилированный файл .js.

В зависимости от метода, который вы используете для объединения модулей, решение этой проблемы может быть любым. Но у вас где-то есть инструкция, говорящая браузеру, что когда он увидит @angular/upgrade/static, он должен загрузить node_modules/@angular/upgrade/static.ts. Вместо этого он должен загрузить один из

  • node_modules/@angular/upgrade/static.js, or
  • node_modules/@angular/upgrade/bundles/static.umd.js

Другая потенциальная проблема, которая у вас может возникнуть (и я сталкивался с этим несколько раз), заключается в том, что вы где-то закомментировали оператор import для @angular/upgrade/static.

person ovangle    schedule 03.12.2016
comment
Спасибо за вашу помощь. Похоже, корень в веб-пакете был установлен в другом месте. Теперь это работает. - person John Samuel; 06.12.2016
comment
@johnsam, что ты изменил в конфигурации своего веб-пакета? У меня тоже похожие проблемы с настройкой. - person TheBlueMan; 15.12.2016
comment
@bluestring module.exports = { запись: { поставщик: './app/vendor', основной: './app/main', css: './app/styles.less' }, вывод: {путь: __dirname, имя файла: ./build/[имя].bundle.js}, разрешение: { root: path.join(__dirname, 'app'), }, модуль: { загрузчики: [ { тест: /\.ts/, загрузчики: ['ts-loader'], исключить: /node_modules/ } ] } }; - person John Samuel; 16.12.2016