找不到 NgModule。使用 skip-import 选项跳过 NgModule 中的导入

Could not find an NgModule. Use the skip-import option to skip importing in NgModule

当我使用 CLI 创建新组件时,post 的主题出现错误:ng g c my-component --project=my-project(未创建组件)

我见过其他 post 有相同的错误消息,但其中 none 还包括 Nrwl/Nx,我认为这与此有关。项目从 Ng4 开始,并升级到 Ng6。

环境:

更新#1

我尝试完全删除 --project 标志(所以只是 ng g c my-component),但仍然遇到同样的问题。还不确定这意味着什么。

我最终完全删除了 node_modules,清除了 yarn 缓存,然后 运行 yarn 重新安装所有包。我还编辑了 angular.json 文件,使所有应用程序和库的路径看起来像这样:

"root": "libs/my-lib",
"sourceRoot": "libs/my-lib/src"

我不确定哪一个解决了问题,但现在似乎一切正常。至少眼前的问题消失了。

快速修复

1) cmd/terminal中的当前目录更改为src/app

cd src/app (linux)

cd .\src\app\ (windows)

2) 运行 现在命令

ng g c myComponent

我遇到了同样的问题,在 angular.json 文件中,我搜索了 my-project-e2e(将 my-project 替换为您的项目名称) 然后我改变了:

"root": """root": "e2e" 并保存了它。一切都恢复正常了。

解决方案在此link中指定。

有同样的问题。原来与根组件的名称有某种关系。重命名回 'app' 解决了问题

组件的生成旨在做两件事:

  • 为组件
  • 创建源代码
  • 模块 中注册组件(默认情况下,在 app.module.ts 中)

问题是,您没有app.module.ts。您将其重命名为其他名称,或者甚至可能有多个。在这种情况下,有 2 种可能的解决方案:

  1. 您手动注册组件。 (最简单)

    ng g component mycomponent --skip-import

  2. 您使用 -m 开关指定模块。 (可能被破坏) 这里有一个很长的线程:https://github.com/nrwl/nx/issues/526

我从 angular.json 文件中删除了行 "cli": { "defaultCollection": "@nativescript/schematics" },它对我有用。

这也发生在我身上,就我而言,这是由于我在 app 文件夹外生成了一个新组件,我在 app 文件夹内购买了新组件,问题就解决了。

  1. 第一种方式:
    我想首先你必须进入你的应用程序文件夹然后输入 cmd;
    ng g c your_com_name --spec false
    ng g c your_com_name
    它肯定会创建您的组件或解决您的问题。

  2. 第二种方式:
    angular.json->projects:
    中删除 e2e 绝对

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

运行 app.module.ts 文件所在的组件生成命令(ng g c 组件名称)。

您在 cmd 中的当前目录 window 很重要。 运行 此命令来自项目中的“src/app”文件夹。 它应该有效。

这是一个很奇怪的答案,但问题的发生是因为我只在 src 目录中打开了我的项目。重新打开整个项目文件夹可以解决问题。

我遇到了同样的问题。我的问题(在 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 { }

您可能已将文件 app.module.ts 更改到其他文件夹(在文件夹 app 之外)。 Ionic 未找到该文件。

工作 100%

尝试--skip-import

ng g c mycomponent --skip-import

或更改目录 src/app ;

点击应用程序打开终端 -> 输入命令 ng g c 'your component name' 并回车

我认为这些是您点击一次并检查的错误 https://i.stack.imgur.com/RSG7c.png

您不在应用程序文件夹中... 在 windows 上 cd 应用程序,然后 运行 命令

确保你在正确的道路上(我的意思是在你工作的道路上) 所以只需在控制台中通过打印工作目录 (pwd) 验证这一点并更改它。这对我有用

从 visual studio 代码我做了一个: 右键单击应用程序文件夹 -> 单击“在集成终端中打开” -> 运行 cmd: ng g 组件用户。 已创建 4 个文件。运行成功!

请检查 .module.ts 文件的位置。我从 /src 文件夹中 运行 执行此命令,而应用程序模块位于 /src/app 文件夹中。

当 运行 来自 /src/app 路径的相同命令时。正在运行。

在终端输入 ** cd .\app\ ** 或输入“cd app + Tab”。进入应用程序文件夹后,ng 命令就可以使用了!