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

六眼飞鱼酱① 提交于 2019-12-04 15:02:06

问题


I get the error in the subject of this post when I use the CLI to create a new component: ng g c my-component --project=my-project (No component is created)

I've seen other posts with the same error message, but none of them also include Nrwl/Nx, which I believe is somehow involved. Project started as Ng4 and was upgraded to Ng6.

Any ideas how I can fix this?

Thx.

TTE

Environment:

  • Angular CLI: 6.0.8
  • Node: 8.9.4
  • OS: win32 x64
  • Angular: 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
  • typescript 2.7.2
  • webpack 4.8.3
  • nrwl/nx 6.1.0

UPDATE #1

I tried dropping the --project flag entirely ( so just ng g c my-component) and still get the same problem. Not sure what that means, yet.


回答1:


Quick fix

1) Change current directory in cmd/terminal to src/app

cd src/app (linux)

cd .\src\app\ (windows)

2) Run commands now

ng g c myComponent




回答2:


The generate of components aims to do 2 things:

  • create source code for the component
  • registers the component in a module (by default, in the app.module.ts)

The problem is, that you don't have an app.module.ts. You renamed it to something else, or perhaps even have multiple of them. In that case there are 2 possible solutions:

  1. you do the registration of the component manually. (easiest)

    ng g component mycomponent --skip-import

  2. you specify the module with the -m switch. (might be broken) There is a long thread about it here: https://github.com/nrwl/nx/issues/526




回答3:


I ended up totally deleting node_modules, clearing out the yarn cache and then running yarn to reinstall all packages. I also edited my angular.json file so that my pathing looked like this for all applications and libraries:

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

I'm not sure which of those fixed the problem, but all appears to be OK now. At least the immediate problem went away.

Hopefully this helps someone else.

TTE




回答4:


I had the same issue, In angular.json file, I searched for my-project-e2e (replace my-project with your project name) and then I changed:

"root": "" to "root": "e2e" and saved it. Everything was working again.

The solution was specified in this link.




回答5:


  1. First way:
    I think first you have to go to inside your app folder then type cmd;
    ng g c your_com_name --spec false
    or ng g c your_com_name
    It will definitely create your component or solve your problem.

  2. second way:
    Remove your e2e from your angular.json->projects:
    definitely

    { 
        your_project_name-e2e:{}
    }
    

    example: 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:


Had same issue. Turned out to be somehow related to the name of the root component. Renaming back to 'app' resolved the problem




回答7:


I removed the line "cli": { "defaultCollection": "@nativescript/schematics" } from angular.json file and it worked for me.




回答8:


This also happened to me and in my case it was due to me generating a new component outside of the app folder, I bought the new component inside the app folder and the issue was solved.




回答9:


Run component generation command(ng g c component-name) from where the app.module.ts file is located.



来源:https://stackoverflow.com/questions/51200919/could-not-find-an-ngmodule-use-the-skip-import-option-to-skip-importing-in-ngmo

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!