找不到 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。
环境:
- Angular CLI:6.0.8
- 节点: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/cdk6.3.1
- @angular/cli6.0.8
- @angular/material6.3.1
- @ngtools/webpack6.0.8
- @schematics/angular 0.6.1
- @schematics/update 0.6.8
- rxjs 6.2.1
- 打字稿 2.7.2
- 网络包 4.8.3
- nrwl/nx6.1.0
更新#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 种可能的解决方案:
您手动注册组件。 (最简单)
ng g component mycomponent --skip-import
您使用 -m
开关指定模块。 (可能被破坏) 这里有一个很长的线程:https://github.com/nrwl/nx/issues/526
我从 angular.json 文件中删除了行 "cli": { "defaultCollection": "@nativescript/schematics" }
,它对我有用。
这也发生在我身上,就我而言,这是由于我在 app 文件夹外生成了一个新组件,我在 app 文件夹内购买了新组件,问题就解决了。
第一种方式:
我想首先你必须进入你的应用程序文件夹然后输入 cmd;
ng g c your_com_name --spec false
或 ng g c your_com_name
它肯定会创建您的组件或解决您的问题。
第二种方式:
从 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 命令就可以使用了!
当我使用 CLI 创建新组件时,post 的主题出现错误:ng g c my-component --project=my-project
(未创建组件)
我见过其他 post 有相同的错误消息,但其中 none 还包括 Nrwl/Nx,我认为这与此有关。项目从 Ng4 开始,并升级到 Ng6。
环境:
- Angular CLI:6.0.8
- 节点: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/cdk6.3.1
- @angular/cli6.0.8
- @angular/material6.3.1
- @ngtools/webpack6.0.8
- @schematics/angular 0.6.1
- @schematics/update 0.6.8
- rxjs 6.2.1
- 打字稿 2.7.2
- 网络包 4.8.3
- nrwl/nx6.1.0
更新#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 种可能的解决方案:
您手动注册组件。 (最简单)
ng g component mycomponent --skip-import
您使用
-m
开关指定模块。 (可能被破坏) 这里有一个很长的线程:https://github.com/nrwl/nx/issues/526
我从 angular.json 文件中删除了行 "cli": { "defaultCollection": "@nativescript/schematics" }
,它对我有用。
这也发生在我身上,就我而言,这是由于我在 app 文件夹外生成了一个新组件,我在 app 文件夹内购买了新组件,问题就解决了。
第一种方式:
我想首先你必须进入你的应用程序文件夹然后输入 cmd;
ng g c your_com_name --spec false
或ng g c your_com_name
它肯定会创建您的组件或解决您的问题。第二种方式:
从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 命令就可以使用了!