我不能在asp.net核心温泉中添加带角度cli的新组件

时间:2017-09-17 19:41:29

标签: angular asp.net-web-api asp.net-core-mvc angular-cli

我想在 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中的组件。

app.module.shared.ts

另外,我有3个文件app.module.ts而不是一个:\:

app.module.browser.ts

app.module.shared.ts

app.module.server.ts

9 个答案:

答案 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