Модуль не найден: Ошибка: невозможно разрешить './$$_gendir/app/app.module.ngfactory'
Я получил эту ошибку ниже после обновления моего angular -cli
ERROR in Template parse errors:
Can't bind to 'index' since it isn't a known property of 'tag'. ("own)="handleKeydown($event, item)"
(onTagEdited)="onTagEdited.emit(item)"
[ERROR ->][index]="i"
[attr.tabindex]="readonly ? -1 : 0"
[class.readonly]="readonly""): [email protected]:13
ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'D:\xxxx\yyyy\eeeee\eeee\src'
@ ./src/main.ts 5:0-74
@ multi ./src/main.ts
Эта ошибка возникает, когда я запускаю ng build --prod
и отлично работает, когда я запускаю ng build
без каких-либо параметров,
Ответы
Ответ 1
Когда вы запустите ng build в angular 2, последний angular -cli автоматически запускается с параметром -aot (компиляция по времени), поэтому он пытается оптимизировать ваш код. У вас есть пакет, который еще не совместим для оптимизации. Поэтому вам нужно обновить свои пакеты. Скорее всего, пакеты с **forRoot()**
в вашем приложении .module.ts
Я рекомендую обновлять все пакеты.
Простым способом обновления пакета является использование пакета ncu npm, как показано ниже, который я получил от Как правильно обновить angular 2 (npm) до последней версии?
Установить
npm install -g npm-check-updates
Использование
ncu
для отображения
ncu -u
для повторной записи вашего package.json
и запустите npm install
для обновления пакетов
Если выше не работает, вам может потребоваться обновить код для соответствия требованиям. Для внесения изменений в свой код см. Этот url ниже.
https://medium.com/@isaacplmann/getting-your-angular-2-library-ready-for-aot-90d1347bcad
Ответ 2
У меня была такая же проблема, и я решил, что это было:
Удалите модуль расширенного разрешения из node_modules, а затем запустите
npm install [email protected]
После этого сборки aot работают как ожидалось...
Ответ 3
Использование:
ng build --env=prod
вместо:
ng build --prod
Ответ 4
Столкнулась со второй частью этой проблемы.
ERROR in ./src/main.ts
Can't resolve './$$_gendir/app/app.module.ngfactory'
Разрешил его, обновив angular/cli до 1.2.6 для angular 4
- Удалить папку node_modules
- Обновить "@ angular/cli": "1.0.4" до "@angular/cli": "1.2.6" в package.json под devDependencies
- Запустить npm install
Затем выполнение "ng build -prod" успешно сгенерировало производственную сборку.