有没有办法从Angular 2+中移除未使用的导入和声明?

我被指派从其他最近已经离开公司的开发人员那里接手一些乱七八糟的代码。

我很好奇,有没有Visual Studio Code的插件或者其他方法可以帮助我们快速有效地整理和组织导入和引用?

例如,可能有数百个这样的导入

import { AutoCompleteModule,InputSwitchModule } from 'primeng/primeng';
import { ListboxModule } from 'primeng/primeng';

可以转换成类似的吗

import { AutoCompleteModule,
InputSwitchModule,
ListboxModule  } from 'primeng/primeng';

或其他函数 自动从app.module或整个项目的所有组件中删除那些未使用的导入和声明?< / p >

感谢您的反馈!

257755 次浏览

编辑(根据评论和其他人的建议),Visual Studio Code已经发展并提供了内置的“组织导入”命令的功能,使用以下默认键盘快捷键:

选项+转变+O for Mac

Windows的Alt + 转变 + O


最初的回答:

我希望这个visual studio代码扩展将满足你的需要:https://marketplace.visualstudio.com/items?itemName=rbbit.typescript-hero

它具有以下特性:

  • 将项目或库的导入添加到当前文件
  • 在游标下添加当前名称的导入
  • 用一个命令添加文件中所有缺失的导入
  • 提示符号并自动添加所需导入的智能感知 “灯泡功能”,修复您编写的代码
  • 排序和组织你的导入(Sort和删除未使用的)
  • 打开的TS / TSX文档的代码大纲视图
  • JavaScript也有很酷的东西!(不过是实验阶段,下面有更好的描述。)

Mac: 控制+选项+o

对于Win: Ctrl+Alt+o

为了能够检测未使用的导入、代码或变量,请确保在tsconfig.json文件中有此选项

"compilerOptions": {
"noUnusedLocals": true,
"noUnusedParameters": true
}

安装typescript编译器,如果没有安装的话:

npm install -g typescript

和Vcode中安装的tslint扩展,这对我有用,但启用后我注意到CPU使用量增加,特别是在大项目上。

我还建议使用打印稿英雄扩展来组织导入。

从Visual Studio Code Release 1.22开始,无需扩展即可免费使用。

< kbd > < /转移kbd > + < kbd > Alt < / kbd > + < kbd > O < / kbd >会照顾你的。

由于VSCode v.1.24和TypeScript v.2.9添加了Organize Imports:

Mac: 选项+转变+O

对于Win: Alt+转变+O

如果你是一个重度visual studio用户,你可以简单地打开你的首选项设置,并将以下内容添加到你的settings.json:

...
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
....

希望这对你有所帮助!

在这个帖子里已经有很多好的答案了!我将发布这篇文章来帮助任何试图这样做的人自动!为了自动删除整个项目中未使用的导入,这个文章对我真的很有帮助。

在文章中,作者是这样解释的:

制作一个独立的斜纹棉布。Json文件,其中包含以下内容:

{
"extends": ["tslint-etc"],
"rules": {
"no-unused-declaration": true
}
}

然后执行以下命令修复导入:

 tslint --config tslint-imports.json --fix --project .

考虑修复它抛出的任何其他错误。(我)

然后通过构建它来检查项目工作:

ng build

ng build name_of_project --configuration=production

结束:如果它正确构建,你已经成功地自动删除导入!

注意:只删除不必要的导入。当使用前面提到的命令时,它不提供VS Code所提供的其他特性。