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

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

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

  2. Вы указываете модуль с -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

Работает 100%

Пытаться --skip-import

ng g c mycomponent --skip-import

или сменить каталог src/app;

откройте терминал, щелкнув приложение -> введите команду ng g c 'your component name' и нажмите Enter

Я думаю, это ошибка, которую вы нажимаете один раз и проверяете

Ваш текущий каталог в окне 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.

  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/**"
                ]
              }
            }
          }
        }
    

Убедитесь, что вы находитесь на правильном пути (я имею в виду путь, по которому вы работаете), поэтому просто проверьте это в консоли, распечатав рабочий каталог (pwd) и изменив его. Это сработало для меня

Введите ** cd .\app\ ** в терминале или введите « cd app + Tab ». Когда вы находитесь в папке приложения, команда ng работает!

Надеюсь кому-нибудь поможет, у меня было 2 проблемы:

  1. У меня было 2 модуля на том же уровне папки, что иapp.module.tsэто ссылка, я переместил ее в отдельную папку

  2. Мой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 ..).

Другие вопросы по тегам