有没有办法从Angular 2+;中删除未使用的导入和声明;?
我被指派从最近已经离开公司的其他开发人员那里获取一些混乱的代码 我好奇地问,是否有一些Visual Studio代码插件或其他方法可以帮助我们快速有效地整理和组织导入和引用 例如,像这样的进口产品可能有数百种有没有办法从Angular 2+;中删除未使用的导入和声明;?,angular,visual-studio-code,Angular,Visual Studio Code,我被指派从最近已经离开公司的其他开发人员那里获取一些混乱的代码 我好奇地问,是否有一些Visual Studio代码插件或其他方法可以帮助我们快速有效地整理和组织导入和引用 例如,像这样的进口产品可能有数百种 import { AutoCompleteModule,InputSwitchModule } from 'primeng/primeng'; import { ListboxModule } from 'primeng/primeng'; 可以转化为类似的 import { AutoC
import { AutoCompleteModule,InputSwitchModule } from 'primeng/primeng';
import { ListboxModule } from 'primeng/primeng';
可以转化为类似的
import { AutoCompleteModule,
InputSwitchModule,
ListboxModule } from 'primeng/primeng';
或其他功能,如
是否从app.module或整个项目的所有组件中自动删除这些未使用的导入和声明
谢谢你的反馈 Edit(如评论和其他人中所建议的),Visual Studio代码已经发展,并在内置命令“Organize imports”中提供了此功能,包括以下内容:
Mac的选项+Shift+O
Windows的Alt+Shift+O
原始答复: 我希望此visual studio代码扩展将满足您的需要: 它提供以下功能:
- 将项目或库的导入添加到当前文件
- 在光标下为当前名称添加导入
- 使用一个命令添加文件的所有缺失导入
- 建议符号并自动添加所需导入的Intellisense “灯泡功能”修复了您编写的代码
- 对导入内容进行排序和组织(排序并删除未使用的内容)
- 打开的TS/TSX文档的代码大纲视图
- 所有的JavaScript都很酷!(尽管处于实验阶段,但更好的描述如下。)
对于Win:Ctrl+Alt+o要能够检测未使用的导入、代码或变量,请确保在tsconfig.json文件中有此选项
"compilerOptions": {
"noUnusedLocals": true,
"noUnusedParameters": true
}
安装typescript编译器(如果没有安装):
npm install -g typescript
在Vcode中安装了tslint扩展,这对我来说很有效,但启用后我注意到CPU使用量增加,特别是在大型项目上
我还建议您使用typescript hero扩展来组织导入。从Visual Studio Code Release1.22开始,这是免费的,无需扩展
将照顾您。因为VSCode v.1.24和TypeScript v.2.9: 对于Mac:option+Shift+O
对于Win:Alt+Shift+O如果您是visual studio的忠实用户,只需打开首选项设置并将以下内容添加到设置中即可。json:
...
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
....
希望这能有所帮助 这个帖子上已经有这么多好的答案了!我将发布这篇文章,以帮助任何试图自动执行此操作的人!为了自动删除整个项目中未使用的导入,这对我真的很有帮助 在文章中,作者这样解释: 制作一个包含以下内容的独立tslint文件:
{
"extends": ["tslint-etc"],
"rules": {
"no-unused-declaration": true
}
}
然后运行以下命令修复导入:
tslint --config tslint-imports.json --fix --project .
考虑修复它抛出的任何其他错误。(我做了)
然后通过构建项目来检查项目工作:
ng build
或
结束:如果它构建正确,则您已成功自动删除导入
注意:这只会删除不必要的导入。它不提供VS Code在使用前面提到的某个命令时所提供的其他功能。感谢您将我转到这个附加组件上,它真是棒极了!在我刚刚安装它之前,我曾经安装过自动导入扩展来处理这个小功能(自动导入)。但是在安装TypeScript Hero之后。。。哇,它做了我需要它做的一切,包括在import语句中按字母顺序排序依赖项,摆脱组件类中没有使用的导入,等等!在2018年TS Hero的项目维护人员中,他将停止扩展,因为在VS代码中直接实现了主要功能后,扩展已经过时(参见其他内容)。是否可以调用
Alt+Shift+O
而不重新排序导入?对于Linux,Alt+Shift+O只显示一个弹出窗口,这个答案中的自动部分在哪里?我也在想,组件中的无关导入是否会拖累性能。vscode 1.22 Shift+Alt+O-适合我!也可以从命令行(或git hook)完成:对某些人来说更重要的是,命令是组织导入
或编辑器.action.organizeImports
@pcnate有没有办法在保持导入排序的同时禁用删除未使用的导入?很好!我一直在使用ctrl+shift+-从永远以来,现在我可以找到并更改快捷方式。我必须安装它,但在我的1.37.1安装中没有出现。这似乎与ESLint Prettier插件冲突。它试图进行一行导入,但ESLint试图打断多行。问题与@Richard相同。这似乎是一个悬而未决的问题-有没有一种方法可以在保持导入排序的同时禁用未使用导入的删除?很好的答案。在我的经验中,自动组织导入和格式不应该在save上完成,因为它可能会导致git冲突噩梦。如果开发者愿意的话,在保存文件之前应该由他们来做。如果他们正在处理新文件,这是可以的,但当您只是对现有代码应用热修复程序时就不行了。当然,在对lint文件的后期提交阶段使用Husky或Github之类的操作更容易,但传统项目通常不会这样做,您只希望看到更改差异,而不是格式化差异。我得到无法找到配置中指定的以下规则的实现:无未使用的声明,所以我想这个解决方案已经不起作用了。我正在使用tslint版本5.20.1
这对我有帮助;谢谢我为我的项目添加了一个选项(React),即忽略ng build name_of_project --configuration=production