我尝试使用“ng destroy component foo”,它告诉我“Angular-CLI不支持销毁命令”

如何使用Angular CLI正确地删除组件?


当前回答

目前,Angular CLI不支持删除组件的选项,你需要手动执行。

从app.module中删除每个组件的导入引用 删除组件文件夹。 你还需要从app.module.ts文件中的@NgModule声明数组中删除组件声明

其他回答

我写了一个bash脚本,它应该自动执行下面Yakov Fain所写的过程。它可以像。/removeComponent这样调用

#!/bin/bash
if [ "$#" -ne 1 ]; then
    echo "Input a component to delete"
    exit 1
fi

# finds folder with component name and deletes
find . -type d -name $1 | xargs rm -rf

# removes lines referencing the component from app.module.ts
grep -v $1 app.module.ts > temp
mv temp app.module.ts

componentName=$1
componentName+="Component"

grep -v -i $componentName app.module.ts > temp
mv temp app.module.ts

使用Visual Studio Code,删除组件文件夹,并在项目资源管理器(左侧)中看到显示为红色的文件,这意味着文件受到了影响并产生了错误。打开每个文件并删除使用该组件的代码。

这是Angular CLI不支持的,而且他们也不打算很快把它包括进来。

这里是链接到实际创建的问题- https://github.com/angular/angular-cli/issues/1776

以及官方给出的解决方案截图

我需要删除一个Angular 6指令,它的规范文件是错误的。即使在删除了违规文件,删除了对它的所有引用并重新构建应用程序后,TS仍然报告了相同的错误。对我有用的是重新启动Visual Studio -这清除了错误和所有不需要的旧指令的痕迹。

我不确定这是否是最好的方法,但它对我来说很有效。

首先,我删除了组件文件夹。 然后,我清除了app.module。与我想删除的组件相关的导入和声明的app.component.ts、app.component.ts和app.component.html。 类似地,我清除了main.ts。

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