Не удалось найти NgModule. Используйте опцию skip-import для пропуска импорта в NgModule
Я получаю сообщение об ошибке в теме этого сообщения, когда я использую CLI для создания нового компонента: ng gc my-component --project=my-project
(компонент не создан)
Я видел другие сообщения с тем же сообщением об ошибке, но ни один из них также не содержит Nrwl/Nx, который, как мне кажется, каким-то образом задействован. Проект начался как Ng4 и был повышен до Ng6.
Любые идеи, как я могу это исправить?
Спасибо.
TTE
Окружающая среда:
- Угловой CLI: 6.0.8
- Узел: 8.9.4
- ОС: win32 x64
- Угловая: 6.0.6
- @angular-devkit/architect 0.6.8
- @angular-devkit/build-angle 0.6.8
- @angular-devkit/build-optimizer 0.6.8
- @angular-devkit/core 0.6.8
- @angular-devkit/schematics 0.6.8
- @angle/cdk 6.3.1
- @angular/cli 6.0.8
- @угловой/материал 6.3.1
- @ngtools/webpack 6.0.8
- @схемы/угловые 0.6.1
- @schematics/update 0.6.8
- rxjs 6.2.1
- машинопись 2.7.2
- webpack 4.8.3
- nrwl/nx 6.1.0
ОБНОВЛЕНИЕ # 1
Я попытался сбросить флаг --project
целиком (так что просто ng gc my-component
) и по-прежнему получаю ту же проблему. Не уверен, что это значит.
Ответы
Ответ 1
Я закончил полностью удаление node_modules
, очистив кеш пряжи, а затем запустив yarn
чтобы переустановить все пакеты. Я также отредактировал мой файл angular.json
чтобы мой путь был похож на все приложения и библиотеки:
"root": "libs/my-lib",
"sourceRoot": "libs/my-lib/src"
Я не уверен, кто из этих исправил проблему, но теперь все выглядит нормально. По крайней мере, проблема сразу исчезла.
Надеюсь, это поможет кому-то другому.
TTE
Ответ 2
Быстрая починка
1) Измените текущий каталог в cmd/terminal на src/app
cd src/app
(linux)
cd.\src\app\
(windows)
2) Запустить команды сейчас
ng gc myComponent
Ответ 3
Генерация компонентов направлена на выполнение двух задач:
- создать исходный код для компонента
- регистрирует компонент в модуле (по умолчанию в
app.module.ts
)
Проблема в том, что у вас нет app.module.ts
. Вы переименовали его во что-то еще, или, возможно, даже несколько их. В этом случае есть 2 возможных решения:
-
Вы делаете регистрацию компонента вручную. (самый простой)
ng g компонент mycomponent --skip-import
-
Вы указываете модуль с -m
переключателя -m
. (возможно, не работает). Здесь есть длинная тема: https://github.com/nrwl/nx/issues/526.
Ответ 4
У меня была та же проблема: в файле angular.json я искал my-project-e2e (замените my-project на имя вашего проекта), а затем изменил:
"root": ""
to "root": "e2e"
и сохранили его. Все снова заработало.
Решение было указано в этой ссылке.
Ответ 5
Первый способ:
Я думаю, что сначала вы должны зайти в папку вашего приложения, а затем набрать cmd;
ng g c your_com_name --spec false
или ng g c your_com_name
Это определенно создаст ваш компонент или решит вашу проблему.
Второй способ:
Удалите свой e2e из angular.json->projects
:
определенно
{
your_project_name-e2e:{}
}
пример: my-first-app-e2e
{
"root": "e2e/",
"projectType": "application",
"architect": {
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "my-first-app:serve"
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": "e2e/tsconfig.e2e.json",
"exclude": [
"**/node_modules/**"
]
}
}
}
}
Ответ 6
Была такая же проблема. Оказалось, как-то связано с именем корневого компонента. Переименование обратно в "приложение" решило проблему
Ответ 7
Я удалил строку "cli": { "defaultCollection": "@nativescript/schematics" }
из файла angular.json, и это сработало для меня.
Ответ 8
Это также случилось со мной, и в моем случае это было из-за того, что я создал новый компонент вне папки приложения, я купил новый компонент внутри папки приложения, и проблема была решена.
Ответ 9
Запустите команду генерации компонента (ng g c component-name), из которой находится файл app.module.ts.