2016-12-28 42 views
51

我试图用“NG破坏组件富”的最佳方式,它告诉我“的破坏命令不被角CLI支持”什么是删除组件与CLI

我们如何正确地删除组件与Angular CLI?

回答

57

destroy或类似的东西可能会进入CLI,但目前它不是主要关注点。所以你需要手动完成。

删除组件目录(假设您没有使用--flat),然后将它从声明它的NgModule中删除。

如果你不确定该怎么做,我建议你有一个“干净”的应用程序,意味着当前没有git变化。然后生成一个组件,看看回购中有什么变化,这样你就可以从那里回溯你需要做什么来删除一个组件。

更新

如果你只是尝试你想生成的东西,你可以使用--dry-run标志不产生磁盘上的所有文件,只看到更新后的文件列表。

32
  1. 删除包含此组件的文件夹。
  2. 在app.module.ts中删除该组件的导入语句并从@NgModule的声明部分中删除其名称
  3. 从index.ts中删除包含此组件的导出语句的行。
+2

where is index.ts?感谢 –

+8

在最新版本的CLI中不会生成它。 –

+1

我想再多走一步......再次运行服务,不是吗? – gsalgadotoledo

6

目前Angular CLI不支持删除组件的选项,您需要手动完成。从app.module为每个组件

  1. 拆下进口引用
  2. 删除组件文件夹。
6

因为它不是采用了棱角分明CLI

所以这里还不支持是可能的方式,在此之前,请遵守当您使用CLI(例如:ng g c demoComponent)组件/服务会发生什么。

  1. 它创建一个名为demoComponentng g c demoComponent)的单独文件夹。
  2. 它生成HTML,CSS,ts和专用于demoComponent的spec文件。
  3. 此外,它在app.module.ts文件中添加依赖项以将该组件添加到您的项目中。

所以这样做以相反的顺序

  1. app.module.ts
  2. 删除依赖删除该组件文件夹。
1

我不确定这是否是最好的方法,但它对我有用。

  • 首先,我删除了组件文件夹。
  • 然后,我清除了与要删除的组件相关的导入和声明的app.module.ts,app.component.ts & app.component.html。
  • 同样,我清除了main.ts.

我刚保存并刷新了应用程序,它工作。

0

从app.module.ts:用于上述特定成分

  • 擦除进口线;
  • 从@NgModule中清除它的声明;

然后删除您要删除其包含的文件(.component.ts.component.html.component.css.component.spec.ts)组件的文件夹中。

完成。

-

我看到有人说关于从main.ts中删除它。你不应该从那里导入它,因为它已经导入了AppModule,AppModule是导入你创建的所有组件的AppModule。

0

首先,删除组件文件夹,您必须删除 ,然后删除您在“ts”文件中创建的条目。

0

如果您在CLI中查找某些命令,那么现在是ans NO。 但是,您可以通过删除组件文件夹和所有参考手动执行