Could not find an NgModule. Use the skip-import option to skip importing in NgModule
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.
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.
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
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:
-
you do the registration of the component manually. (easiest)
ng g component mycomponent --skip-import
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
Run component generation command(ng g c component-name) from where the app.module.ts file is located.