Не удалось найти модуль NgModule. Используйте опцию skip-import, чтобы пропустить импорт в NgModule
Я получаю сообщение об ошибке в теме этого поста, когда использую CLI для создания нового компонента: ng g c 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-angular 0.6.8
- @ angular-devkit / build-optimizer 0.6.8
- @ angular-devkit / core 0.6.8
- @ angular-devkit / schematics 0.6.8
- @ angular / cdk 6.3.1
- @ angular / cli 6.0.8
- @ угловой / материал 6.3.1
- @ ngtools / webpack 6.0.8
- @ schematics / angular 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 g c my-component
) и до сих пор получаю такую же проблему. Пока не уверен, что это значит.
23 ответа
Я полностью удалил node_modules
, очистить кеш пряжи и запустить yarn
переустановить все пакеты. Я также отредактировал мой angular.json
файл, чтобы мой путь выглядел так для всех приложений и библиотек:
"root": "libs/my-lib",
"sourceRoot": "libs/my-lib/src"
Я не уверен, кто из них решил проблему, но теперь все в порядке. По крайней мере, непосредственная проблема ушла.
Надеюсь, это поможет кому-то еще.
TTE
Быстрая починка
1) Измените текущий каталог в cmd/ терминал на src / app
cd src/app
(Linux)
cd .\src\app\
(окна)
2) Запустите команды сейчас
ng g c myComponent
Генерация компонентов направлена на выполнение двух задач:
- создать исходный код для компонента
- регистрирует компонент в модуле (по умолчанию в
app.module.ts
)
Проблема в том, что у вас нет app.module.ts
, Вы переименовали его во что-то еще, или, возможно, даже несколько их. В этом случае есть 2 возможных решения:
Вы делаете регистрацию компонента вручную. (самый простой)
ng g компонент mycomponent --skip-import
Вы указываете модуль с
-m
переключатель. (возможно, не работает). Здесь есть длинная тема: https://github.com/nrwl/nx/issues/526
Запустите команду создания компонента (ng g c component-name) из того места, где находится файл app.module.ts.
You are not inside app folder...cd app on windows, and then run command
Happy codding
Ваш текущий каталог в окне cmd имеет значение. Выполните эту команду из папкиsrc/app в проекте. Он должен работать.
Пожалуйста, проверьте расположение файла .module.ts. Я запускал эту команду из папки / src, а модуль приложения находился внутри папки / src / app.
При запуске той же команды из пути / src / app. Это работает.
Возможно, вы изменили файл app.module.ts на другую папку (вне папки app). Ionic не находит файл.
Я убрал строку "cli": { "defaultCollection": "@nativescript/schematics" }
из файла angular.json, и у меня это сработало.
У меня возникла та же проблема: в файле angular.json я искал my-project-e2e (замените my-project именем вашего проекта), а затем изменил:
"root": ""
в "root": "e2e"
и сохранил это. Все снова заработало.
Решение было указано по этой ссылке.
This is pretty weird answer, but the problem occur because I have open my project in the src directory only. Reopening the entire project folder resolves the issue.
Первый способ:
Я думаю, что сначала вы должны зайти в папку вашего приложения, а затем набрать 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/**" ] } } } }
Убедитесь, что вы находитесь на правильном пути (я имею в виду путь, по которому вы работаете), поэтому просто проверьте это в консоли, распечатав рабочий каталог (pwd) и изменив его. Это сработало для меня
Введите ** cd .\app\ ** в терминале или введите « cd app + Tab ». Когда вы находитесь в папке приложения, команда ng работает!
Надеюсь кому-нибудь поможет, у меня было 2 проблемы:
У меня было 2 модуля на том же уровне папки, что и
app.module.ts
это ссылка, я переместил ее в отдельную папкуМой
components
папка находилась за пределамиapp
папку, вам нужно войти в приложение, чтобы запустить команду, чтобы найтиNgModule
Это также случилось со мной, и в моем случае это было из-за того, что я создал новый компонент вне папки приложения, я купил новый компонент внутри папки приложения, и проблема была решена.
вам нужно перейти в папку src/app
просто используйте команду приложения $cd, чтобы войти внутрь
Я была такая же проблема. Моя проблема (в ionic 4) заключалась в том, что отсутствовал файл app-routing.module.ts. Пришлось создать пустую, до добавления новых страниц работали:
import { NgModule } from '@angular/core';
import { PreloadAllModules, RouterModule, Routes } from '@angular/router';
const routes: Routes = [
{
path: '',
redirectTo: 'home',
pathMatch: 'full'
},
];
@NgModule({
imports: [
RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })
],
exports: [RouterModule]
})
export class AppRoutingModule { }
Я создал свою пустую папку и переместил в нее свой старый модуль. После того, как я попытался создать компонент внутри папки, я получил ту же ошибку. Я удалил пустую папку и создал папку модуля. После этого я смог создавать новые компоненты и т.д.
Была такая же проблема. Оказалось, как-то связано с именем корневого компонента. Переименование обратно в "приложение" решило проблему
Из кода Visual Studio я сделал: щелкните правой кнопкой мыши папку приложения -> нажмите «открыть в интегрированном терминале» -> запустите пользователя компонента cmd: ng g. Создано 4 файла. Он работает успешно!
Я получил ту же ошибку, потому что я был в неправильном месте файла. По какой-то причине я подумал, что мне нужно сделать это из местоположения файла src, а не из указанного выше места (где находится angular.json и, конечно же, сам src/)
Выполнение команды из корневого каталога решило проблему (в моем случае cd ..).