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

Tim*_*ter 35 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
  • @ angular/material 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),但仍然遇到同样的问题.不知道那意味着什么.

Deb*_*oti 62

快速解决

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

cd src/app (Linux)的

cd .\src\app\ (视窗)

2)立即运行命令

ng g c myComponent

  • 这可行的原因是您的项目的默认src/app文件夹层次结构已更改.因此,任何其他不适合这种情况的东西都行不通.使用cli生成默认项目时,不必执行此操作. (2认同)
  • 这不是唯一的原因,如果您在与“src/app”不同的文件夹中运行“ng生成组件”,您将收到该错误。 (2认同)

Muz*_*ood 17

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


bvd*_*vdb 10

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

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

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

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

    ng g component mycomponent --skip-import

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


Har*_*lla 9

工作100%

尝试--skip-import

ng g c mycomponent --skip-import
Run Code Online (Sandbox Code Playgroud)

或更改目录 src/app ;

单击应用程序打开终端 - >输入命令ng g c 'your component name'并按 Enter 键

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


tar*_*mar 8

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


Nen*_*bić 7

您不在 app 文件夹中... cd app on windows,然后运行命令

快乐编码


Tim*_*ter 2

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

"root": "libs/my-lib",
"sourceRoot": "libs/my-lib/src"
Run Code Online (Sandbox Code Playgroud)

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