我想在 asp.net core 2.0 SPA中添加一个新组件, angular 4 , angular cli 与此版本:
@ angular / cli:1.4.2
节点:8.4.0
os:Linux x64
当我在组件目录上运行此命令ng g c vehicle-form
时出现此错误:
错误:找不到新组件的NgModule。使用skip-import选项跳过导入NgModule中的组件。 找不到新组件的NgModule。使用skip-import选项跳过导入NgModule中的组件。
另外,我有3个文件app.module.ts
而不是一个:\:
app.module.browser.ts
app.module.shared.ts
app.module.server.ts
答案 0 :(得分:26)
您在未使用CLI构建的项目中使用Angular CLI,因此您必须采取一些额外步骤。错误消息告诉您要执行此操作。
首先,运行ng g c vehicle-form
命令并包含--skip-import=true
选项。
然后,手动在适当的应用程序模块文件中添加组件声明。在这种情况下,app.module.shared.ts
,其中声明了所有其他应用程序组件。
或者,您可以运行ng g c vehicle-form
并添加--module='app.module.shared.ts'
。您可能必须完全限定模块文件的路径。我没有测试过,所以要准备好自己尝试一些事情。
有关ng生成组件的更多内容:generate component。
更新(2018-03-01)
Microsoft提供了一些用于ASP.NET Core 2.0应用程序的新SPA模板。您可以找到有关他们的更多详细信息here。新的Angular template包含对Angular CLI的支持。所以,如果你熟悉CLI,那么这应该感觉像家一样。这意味着您可以使用ng g
命令使用此新模板生成代码。
答案 1 :(得分:23)
在我的案例中,问题出现在e2e项目中。将项目从角度4移动到角度6后,添加了一个新的角度配置文件" angular.json"相反" angular.conf.json"。 在一个项目部分出现了两个项目:其中一个我的" ng-app"和其他" ng-app-e2e"。 当我尝试执行" ng g c"命令我捕获相同的错误。原因是" ng-app-e2e"的根部分。它有空值。我将它设置为" e2e"。现在一切都好! 尽管在" ng-app"。
中设置了默认项目,但仍会发生这种情况"projects": {
"ng-app": {
"root": "",
"sourceRoot": "src",
"projectType": "application",
"prefix": "app",
...
},
"ng-app-e2e": {
"root": "e2e", <-- SALVATION
"sourceRoot": "e2e",
"projectType": "application",
...
}
},
"defaultProject": "ng-app"
答案 2 :(得分:5)
对于ASP Net Core Angular项目,app.module在您突出显示时分为3个文件。角度CLI必须决定在模块中添加对组件的引用的位置,因此您需要为它提供一些帮助。
ng g c moduleName --module ='app.module.browser.ts'
答案 3 :(得分:3)
在.angular-cli.json中 在部分&#34; apps&#34;替换&#34; ./ src&#34;到&#34; src&#34;
&#34; apps&#34;:[ { &#34; root&#34;:&#34; src&#34;, &#34; outDir&#34;:&#34; dist&#34;,
答案 4 :(得分:1)
ng生成组件componentName --module = app.module
在我的项目中,我也遇到了上述错误,我尝试了这个命令,这项工作正常。我想这会对你有帮助。
答案 5 :(得分:1)
我遇到了同样的问题然后我意识到我没有进入项目的根文件夹。
时我没有工作
/c/some/path/your_project/src/bla/bla/bla
但确实有用(对我来说有效)
/c/some/path/your_project
答案 6 :(得分:1)
在将5转换为6版本时,我遇到了同样的问题。我从github找到了解决方案。当我从sourceRoot删除e2e时,它解决了问题。
答案 7 :(得分:1)
如果没有app.module.ts文件,将发生此错误。请确认文件是否存在,如果不存在,请手动创建一个。
答案 8 :(得分:0)
1-将angular.json
从默认的角度项目复制到asp.net mvc核心项目中。
2-可能需要安装npm install @angular/cli@latest --save-dev
3-打开angular.json
并更改
"root": "./ClientApp", "sourceRoot": "./ClientApp/src",
然后您可以使用ng g c vehicle-form