77

当我使用 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),但仍然遇到同样的问题。还不确定这意味着什么。

4

19 回答 19

132

快速解决

1)将 cmd/terminal 中的当前目录更改为src/app

cd src/app(Linux)

cd .\src\app\(视窗)

2)现在运行命令

ng g c myComponent

于 2018-07-12T04:47:46.850 回答
33

组件的生成旨在做两件事:

  • 为组件创建源代码
  • 在模块中注册组件(默认情况下,在app.module.ts

问题是,您没有app.module.ts. 您将其重命名为其他名称,或者甚至可能有多个。在这种情况下,有两种可能的解决方案:

  1. 您手动注册组件。(最简单的)

    ng g 组件 mycomponent --skip-import

  2. -m您使用开关指定模块。(可能坏了)这里有一个很长的话题:https ://github.com/nrwl/nx/issues/526

于 2019-03-18T17:16:15.080 回答
19

从 app.module.ts 文件所在的位置运行组件生成命令(ng gc component-name)。

于 2019-10-11T18:11:14.023 回答
10

您不在 app 文件夹内... cd app on windows,然后运行命令

于 2020-12-09T11:31:36.007 回答
8

您在 cmd 窗口中的当前目录很重要。从项目中的“ src/app ”文件夹运行此命令。它应该工作。

于 2020-04-12T13:57:34.437 回答
8

100% 工作

尝试--skip-import

ng g c mycomponent --skip-import

或更改目录 src/app ;

打开终端点击应用程序->输入命令ng g c 'your component name'并按Enter

我认为这些是您单击一次并检查它的错误 https://i.stack.imgur.com/RSG7c.png

于 2020-10-03T15:41:53.860 回答
3

"cli": { "defaultCollection": "@nativescript/schematics" }从 angular.json 文件中删除了该行,它对我有用。

于 2019-07-25T10:20:42.633 回答
2

这是一个很奇怪的答案,但问题是因为我只在 src 目录中打开了我的项目。重新打开整个项目文件夹可解决此问题。

于 2020-05-01T02:05:16.030 回答
2

您可能已将文件app.module.ts更改为其他文件夹(文件夹外app)。离子没有找到文件。

于 2020-09-22T13:47:39.180 回答
2
  1. 第一种方式
    我认为首先你必须进入你的应用程序文件夹,然后输入 cmd;
    ng g c your_com_name --spec false
    或者ng g c your_com_name
    它肯定会创建您的组件或解决您的问题。

  2. 第二种方式:从您的: 绝对
    删除您的 e2eangular.json->projects

    { 
        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/**"
                ]
              }
            }
          }
        }
    
于 2019-08-10T19:31:57.263 回答
2

我最终完全删除node_modules,清除了纱线缓存,然后运行yarn重新安装所有包。我还编辑了我的angular.json文件,使所有应用程序和库的路径看起来像这样:

"root": "libs/my-lib",
"sourceRoot": "libs/my-lib/src"

我不确定哪些解决了问题,但现在一切似乎都很好。至少眼前的问题消失了。

于 2018-07-09T15:11:14.790 回答
1

我遇到了同样的问题,在 angular.json 文件中,我搜索了 my-project-e2e (将 my-project 替换为您的项目名称),然后我进行了更改:

"root": """root": "e2e" 保存它。一切都恢复正常了。

此链接中指定了解决方案。

于 2018-08-08T16:25:53.543 回答
1

这也发生在我身上,就我而言,这是由于我在 app 文件夹之外生成了一个新组件,我在 app 文件夹中购买了新组件,问题就解决了。

于 2019-07-26T11:30:46.450 回答
1

请检查 .module.ts 文件的位置。我从 /src 文件夹运行此命令,而 app 模块位于 /src/app 文件夹中。

从 /src/app 路径运行相同的命令时。这是工作。

于 2021-09-17T06:31:59.553 回答
1

确保您在正确的路径中(我的意思是在您正在使用的路径中)所以只需通过打印工作目录(pwd)在控制台中验证这一点并更改它。这对我有用

于 2021-05-31T19:58:15.627 回答
0

有同样的问题。原来与根组件的名称有某种关系。重命名回“应用程序”解决了问题

于 2018-11-05T04:21:35.527 回答
0

我遇到过同样的问题。我的问题(在 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 { }
于 2020-07-15T09:16:25.567 回答
0

从Visual Studio代码我做了一个:右键单击应用程序文件夹->单击“在集成终端中打开->运行cmd:ng g组件用户。已经创建了4个文件。它成功了!

于 2021-07-07T03:34:30.483 回答
0

Enter ** cd .\app\ ** in the terminal or type "cd app + Tab". Once you are in the app folder, the ng command works!

于 2022-01-27T11:04:26.887 回答