使用ng g c my-component
生成新组件时出现错误:
无法找到NgModule。使用skip-import选项跳过 在NgModule中导入。
如果我然后使用skip-import选项,Angular会在我的e2e文件夹中生成组件。
我假设它与我的angular.json
文件有关,在我运行升级之前曾经被称为angular-cli.json
,这无疑是导致问题的原因,因为似乎有一些问题结构变化。
有没有办法解决这个问题,而无需使用CLI创建新项目,然后手动复制文件..?
ng g c从root“my-app”文件夹运行。
文件夹结构:
my-app
- dist
- e2e
- node_modules
- src
- app
- etc
在my-app文件夹中angular.json
**Angular Versions:**
@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/cli 6.0.8
@ngtools/webpack 6.0.8
@schematics/angular 0.6.8
@schematics/update 0.6.8
rxjs 5.5.2
typescript 2.5.3
webpack 4.8.3
答案 0 :(得分:4)
回答/更新有相同问题的人。
您可以cd
进入组件目录,ng g c
可以正常工作。
为了能够从根文件夹运行此文件,我将@ angular / cli版本回滚到了6.0.3版。我以前安装了6.0.8。
npm i @angular/cli@6.0.3
安装旧版本
ng g c your-component
然后将照常从根文件夹开始工作。
答案 1 :(得分:3)
我闻到 ng 在app root上找到多个模块文件,请在生成组件时提供模块
ng generate component componentName --module=<MODULE-NAME>
ng generate component componentName --module=app.module
答案 2 :(得分:2)
将项目从Angular 4.3升级到Angular 6后,我遇到了同样的问题。问题出在[project-name] -e2e项目下angular.json中的sourceRoot值。它设置为“ e2e”。与最初使用Angular 6创建的其他项目(未升级)进行比较时,我注意到它们在e2e项目上为sourceRoot指定了一个空字符串。将我的配置更改为该配置后,此问题已解决。
请注意,主要项目的sourceRoot仍应为“ src”,您只需要在e2e项目上将其更改为空字符串即可。
答案 3 :(得分:1)
我的一个项目中遇到了同样的问题。
点击此处:Angular CLI in ASP.NET Core 2 Angular template?来自@Ashkan Rahmani的回答。
对于Angular 6项目,您需要转到angular.json,找到&#34; root&#34;在文件内部并将其设置为src文件夹的子项名称(在大多数情况下,它是 app )。
因此您需要替换
"src": ""
带
"src": "app"
然后运行ng g c my-component
答案 4 :(得分:1)
我通过简单地将angular.json文件中的项目对象移动到项目列表的底部,在.net core 2配置的Angular CLI应用程序中解决了此问题。
在我的情况下,主要的应用程序项目是第一个,其次是e2e项目。我切换了它们,然后CLI重新回到在适当的src / app文件夹中创建原理图的位置。
我会推测,无论ng-update对配置执行什么操作,都会使逻辑示意图生成器查看angular.json项目列表中的最后一个内容。
答案 5 :(得分:0)
您的命令声明:ng g c my-component可能会导致问题。请尝试
ng g c mycomponent
答案 6 :(得分:0)
如果要在Angular项目中创建新组件
- 最好的方法是通过以下命令使用Angular CLI
ng generate component sampleComponent
要么ng g c sampleComponent
在这种情况下要考虑的两个主要方面是
- 但是对于您来说,我强烈感觉您可能位于 e2e 文件夹中,这就是收到此消息的原因
- ,如果您通过使用
ng generate component sampleComponent --skip-import
来遵循它,则会在e2e文件夹中创建组件。 (如果您位于 src 文件夹中但位于 app 文件夹之外,则情况类似。这会在src文件夹中创建一个新组件。)
遵循这些步骤
cd ..
注意:您还可以在此处本身使用ng g c sampleComponent
,这将在src / app中创建组件。 cd src/
cd app/
使用命令-这将在src / app中创建组件。
答案 7 :(得分:0)
当我尝试生成一个新组件时,我也遇到了同样的问题,我不知道它背后的实际原因,但是我猜它在那里是因为角度更新。 我已经解决了,您可以尝试:
使用:ng g c (component Name) --project=(project Name*) --module=app
项目名称=您可以在angular.json
文件中找到它
它将被称为
"$schema": "./node_modules/@angular-devkit/core/src/workspace/workspace-schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
***"angular.io-example"***: {
"root": "",
"projectType": "application",
您的项目名称为angular.io-example
。