当我使用 CLI 创建新组件时,我在这篇文章的主题中遇到错误:ng g c my-component --project=my-project
(未创建组件)
我已经看到其他带有相同错误消息的帖子,但没有一个也包括 Nrwl/Nx,我相信它以某种方式涉及。项目从 Ng4 开始并升级到 Ng6。
环境:
角 CLI:6.0.8
节点:8.9.4
操作系统:win32 x64
角度:6.0.6
@angular-devkit/架构师 0.6.8
@angular-devkit/build-angular 0.6.8
@angular-devkit/build-optimizer 0.6.8
@angular-devkit/核心 0.6.8
@angular-devkit/schematics 0.6.8
@角/cdk 6.3.1
@角/cli 6.0.8
@角/材料6.3.1
@ngtools/webpack 6.0.8
@原理图/角度 0.6.1
@原理图/更新 0.6.8
rxjs 6.2.1
打字稿2.7.2
网络包 4.8.3
nrwl/nx 6.1.0
更新#1
我尝试完全删除 --project
标志(所以只是 ng g c my-component
),但仍然遇到同样的问题。还不确定这意味着什么。
快速解决
1) 将 cmd/terminal 中的当前目录更改为 src/app
cd src/app
(Linux)
cd .\src\app\
(窗口)
2)现在运行命令
ng g c myComponent
组件的生成旨在做两件事:
为组件创建源代码
在模块中注册组件(默认情况下,在 app.module.ts 中)
问题是,您没有 app.module.ts
。您将其重命名为其他名称,或者甚至可能有多个。在这种情况下,有两种可能的解决方案:
您手动注册组件。 (最简单) ng g component mycomponent --skip-import 使用 -m 开关指定模块。 (可能坏了)这里有一个很长的话题:https://github.com/nrwl/nx/issues/526
从 app.module.ts 文件所在的位置运行组件生成命令(ng gc component-name)。
您不在 app 文件夹内... cd app on windows,然后运行命令
您在 cmd 窗口中的当前目录很重要。从项目中的“src/app”文件夹运行此命令。它应该工作。
100% 工作
试试--skip-import
ng g c mycomponent --skip-import
或更改目录 src/app ;
单击应用程序打开终端->输入命令 ng g c 'your component name'
并回车
我认为这些是您点击一次并检查它的错误https://i.stack.imgur.com/RSG7c.png
我从 angular.json 文件中删除了行 "cli": { "defaultCollection": "@nativescript/schematics" }
,它对我有用。
我遇到了同样的问题,在 angular.json 文件中,我搜索了 my-project-e2e (将 my-project 替换为您的项目名称),然后我进行了更改:
"root": ""
到 "root": "e2e"
并保存。一切都恢复正常了。
此 link 中指定了解决方案。
第一种方式:我认为首先你必须进入你的应用程序文件夹,然后输入 cmd; ng gc your_com_name --spec false 或 ng gc your_com_name 它肯定会创建您的组件或解决您的问题。第二种方式:从你的 angular.json->projects 中删除你的 e2e:肯定 { your_project_name-e2e:{} } 示例:my-first-app-e2e { "root": "e2e/", "projectType": "application" ,“架构师”:{“e2e”:{“builder”:“@angular-devkit/build-angular:protractor”,“选项”:{“protractorConfig”:“e2e/protractor.conf.js”,“devServerTarget” : "my-first-app:serve" } }, "lint": { "builder": "@angular-devkit/build-angular:tslint", "options": { "tsConfig": "e2e/tsconfig.e2e .json", "排除": [ "**/node_modules/**" ] } } } }
这是一个很奇怪的答案,但问题是因为我只在 src 目录中打开了我的项目。重新打开整个项目文件夹可解决此问题。
您可能已将文件 app.module.ts 更改为其他文件夹(文件夹外 app)。离子没有找到文件。
请检查 .module.ts 文件的位置。我从 /src 文件夹运行此命令,而 app 模块位于 /src/app 文件夹中。
从 /src/app 路径运行相同的命令时。这是工作。
我最终完全删除了 node_modules
,清除了 yarn 缓存,然后运行 yarn
重新安装所有软件包。我还编辑了我的 angular.json
文件,使所有应用程序和库的路径看起来像这样:
"root": "libs/my-lib",
"sourceRoot": "libs/my-lib/src"
我不确定哪些解决了问题,但现在一切似乎都很好。至少眼前的问题消失了。
这也发生在我身上,就我而言,这是由于我在 app 文件夹之外生成了一个新组件,我在 app 文件夹中购买了新组件,问题就解决了。
确保您在正确的路径中(我的意思是在您正在使用的路径中)所以只需通过打印工作目录(pwd)在控制台中验证这一点并更改它。这对我有用
在终端中输入 ** cd .\app\ ** 或输入“cd app + Tab”。进入 app 文件夹后,ng 命令就可以工作了!
有同样的问题。原来与根组件的名称有某种关系。重命名回“应用程序”解决了问题
我遇到过同样的问题。我的问题(在 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 { }
从Visual Studio代码我做了一个:右键单击应用程序文件夹->单击“在集成终端中打开->运行cmd:ng g组件用户。已经创建了4个文件。它成功了!
src/app
不同的文件夹中运行ng generate component
,您将收到该错误。