Angular 6, ngc, AOT, Angular Router, router.ngfactory и SystemJS

У меня есть простое приложение angular 6, которое я пытаюсь скомпилировать с помощью AOT. Я НЕ использую Angular CLI. У меня есть собственный генератор, который поддерживает запуск моего проекта и поддерживает мои компоненты, службы и т. д.

Все работает, как и ожидалось до AOT. Когда я запускаю ngc для компиляции моего углового приложения, все компилируется без ошибок. Однако, когда я проверяю скомпилированные файлы javascript ngfactory, я вижу ссылку на @angular/router/router.ngfactory из каталога node_modules. Нигде не могу найти этот файл.

Моя конфигурация выглядит следующим образом:

  • Узел v.10.10.0
  • Угловой v.6.1.2
  • Машинопись v.3.1.1
  • SystemJS версии 0.21.4
  • Глоток v.3.9.1

Я создал образец репо, чтобы воспроизвести проблему.

Репозиторий находится по адресу SlyGenerator.DemoWithAOT.

Чтобы нормально запустить приложение с помощью JIT, выполните следующую команду «npm run start-dev»

Чтобы воспроизвести ошибку

  • Я запускаю «node_modules/.bin/ngc -p ./src/assets/ts/tsconfig.aot.json». Это создает папку «dist» на корневом уровне с файлами ngfactory.
  • Затем я копирую содержимое папки dist в ./app/assets/js/ (это позволяет мне протестировать сгенерированный код без связывания или минимизации.
  • Затем я изменяю свой файл system.config.js, чтобы использовать файл Main.aot.js вместо файла Main.js. Файл System.config.js находится в папке .app/assets/config/system.config.js.

В этот момент я получаю следующую ошибку:

SyntaxError: Неожиданный токен ‹

Я могу переключить файл system.config.js обратно на исходный, и все снова работает нормально.


person WannaBDeveloper    schedule 06.11.2018    source источник


Ответы (1)


После устранения неполадок в течение нескольких дней просмотра. Я обнаружил, что проблема связана с отсутствующей библиотекой/функциональным модулем.

IMO ошибка > обычно связана с отсутствующими файлами.

person WannaBDeveloper    schedule 03.04.2019