У меня есть простое приложение 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 обратно на исходный, и все снова работает нормально.