找不到NgModule。使用跳过导入选项可跳过NgModule中的导入

时间:2018-07-05 22:57:20

标签: angular nrwl

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

我看过其他帖子,它们具有相同的错误消息,但是它们都没有包含Nrwl / Nx,我认为其中有些涉及。该项目从Ng4开始,并已升级到Ng6。

有什么办法可以解决这个问题吗?

谢谢。

TTE

环境:

  • Angular 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 /角度0.6.1
  • @ schematics /更新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),仍然遇到相同的问题。还不知道那是什么意思。

17 个答案:

答案 0 :(得分:42)

快速修复

1)将cmd /终端中的当前目录更改为 src / app

cd src/app(Linux)

cd .\src\app\(窗口)

2)立即运行命令

ng g c myComponent

答案 1 :(得分:7)

您在cmd窗口中的当前目录很重要。 从项目的“ src / app ”文件夹中运行此命令。 应该可以。

答案 2 :(得分:2)

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

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

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

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

    ng g组件mycomponent -跳过导入

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

答案 3 :(得分:2)

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

答案 4 :(得分:2)

工作100%

尝试--skip-import

ng g c mycomponent --skip-import

或更改目录src / app;

打开终端并点击应用->输入comand ng g c 'your component name'并按Enter

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

答案 5 :(得分:2)

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

答案 6 :(得分:1)

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

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

link中指定了解决方案。

答案 7 :(得分:1)

我最终完全删除了<div class="folders"> <div data-id="12452"> <h2>Folder 1</h2> </div> <div data-id="12453"> <h2>Folder 2</h2> </div> <div data-id="12454"> <h2>Folder 3</h2> </div> </div> <form id="the_form"> <input type="hidden" name="hidden_field" value=""> </form>,清理了纱线缓存,然后运行node_modules重新安装了所有软件包。我还编辑了yarn文件,以便所有应用程序和库的路径都像这样:

angular.json

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

希望这对其他人有帮助。

TTE

答案 8 :(得分:1)

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

愉快的生活

答案 9 :(得分:1)

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

答案 10 :(得分:0)

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

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

答案 13 :(得分:0)

从app.module.ts文件所在的位置运行组件生成命令(ng g c component-name)。

答案 14 :(得分:0)

这也发生在我身上,在我的情况下,这是由于我在app文件夹之外生成了一个新组件,我在app文件夹内购买了新组件,问题得以解决。

答案 15 :(得分:0)

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

答案 16 :(得分:0)

有同样的问题。原来与根组件的名称有关。重命名为“应用”即可解决问题