Не удалось найти 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 возможных решения:

  1. Вы делаете регистрацию компонента вручную. (самый простой)

    ng g компонент mycomponent --skip-import

  2. Вы указываете модуль с -m переключателя -m. (возможно, не работает). Здесь есть длинная тема: https://github.com/nrwl/nx/issues/526.

Ответ 4

У меня была та же проблема: в файле angular.json я искал my-project-e2e (замените my-project на имя вашего проекта), а затем изменил:

"root": "" to "root": "e2e" и сохранили его. Все снова заработало.

Решение было указано в этой ссылке.

Ответ 5

  1. Первый способ:
    Я думаю, что сначала вы должны зайти в папку вашего приложения, а затем набрать cmd;
    ng g c your_com_name --spec false
    или ng g c your_com_name
    Это определенно создаст ваш компонент или решит вашу проблему.

  2. Второй способ:
    Удалите свой 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.