ChatGPT解决这个技术问题 Extra ChatGPT

找不到 NgModule。使用 skip-import 选项跳过 NgModule 中的导入

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

请尝试这种方法 stackoverflow.com/a/53696599/2668045 应该没问题。

D
Debojyoti

快速解决

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

cd src/app (Linux)

cd .\src\app\(窗口)

2)现在运行命令

ng g c myComponent


这样做的原因是您项目的默认 src/app 文件夹层次结构已更改。因此,任何其他不适合这种情况的方法都将不起作用。当您使用 cli 生成默认项目时,您不必这样做。
这不是唯一的原因,如果您在与 src/app 不同的文件夹中运行 ng generate component,您将收到该错误。
b
bvdb

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

为组件创建源代码

在模块中注册组件(默认情况下,在 app.module.ts 中)

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

您手动注册组件。 (最简单) ng g component mycomponent --skip-import 使用 -m 开关指定模块。 (可能坏了)这里有一个很长的话题:https://github.com/nrwl/nx/issues/526


或者您将 app.module.ts 移动到另一个文件夹,例如 modules 文件夹
M
Muzaffar Mahmood

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


N
Nimantha

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


t
tarÚn kÚmar

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


H
Harish Cholla

100% 工作

试试--skip-import

ng g c mycomponent --skip-import

或更改目录 src/app ;

单击应用程序打开终端->输入命令 ng g c 'your component name' 并回车

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


Z
ZF007

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


c
carkod

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

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

link 中指定了解决方案。


L
Léa Gris

第一种方式:我认为首先你必须进入你的应用程序文件夹,然后输入 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/**" ] } } } }


m
melo

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


我认为这是对这个问题最简单的答案。执行 Angular CLI 命令时,用户应该在根文件夹中。
M
Manuel

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


L
Laky

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

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


Z
Zoe stands with Ukraine

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

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

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


佚名

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


I
Ina Tiganas

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


M
Miguel Angel

在终端中输入 ** cd .\app\ ** 或输入“cd app + Tab”。进入 app 文件夹后,ng 命令就可以工作了!


A
Aleksei Protopopov

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


J
JarmoP

我遇到过同样的问题。我的问题(在 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 { }

E
Esdras Clairmius

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅