如何在Visual Studio 2017中禁用自动ES6导入语句
解决Visual Studio 2017 JavaScript自动补全时自动添加无关导入的问题
我完全懂这种困扰——自动补全本来是提升编码效率的工具,结果每次用setTimeout或者document这类全局对象时,VS2017硬要给你塞一堆无关的远端模块导入,确实闹心。好在这个功能是可以禁用或者配置的,给你几个可行的方案:
方案一:通过VS选项直接禁用/调整自动导入
- 打开Visual Studio 2017,点击顶部菜单栏的
工具→选项 - 在弹出的选项窗口中,依次展开
文本编辑器→JavaScript/TypeScript→语言服务 - 在右侧找到自动导入相关设置:
- 若想彻底关闭自动添加导入的功能,直接取消勾选
在完成时添加缺少的导入即可 - 若不想完全禁用,只想避免全局对象触发错误导入,可以勾选
仅导入来自已配置的模块解析路径的模块,这样VS只会导入你项目内或配置过的模块路径中的内容,不会胡乱导入远端模块
- 若想彻底关闭自动添加导入的功能,直接取消勾选
方案二:通过配置文件限定全局类型
如果上述选项找不到(可能存在版本差异),可以通过项目配置文件来规范类型识别:
- 在项目根目录创建或编辑
jsconfig.json(TypeScript项目则用tsconfig.json) - 在文件中添加
compilerOptions配置,指定你需要的全局类型,排除不必要的自动导入触发源,示例如下:
{ "compilerOptions": { "types": ["node"] // 仅指定你需要的环境类型,比如Node.js环境 }, "exclude": ["node_modules"] }
这个配置会告诉VS哪些类型是全局可用的,无需额外导入,从而避免对setTimeout、document这类全局对象触发错误导入。
方案三:临时规避(应急用)
如果只是偶尔遇到这种情况,在自动补全弹窗出现时,注意观察选项标注——带有(自动导入)后缀的选项会触发导入操作,你可以选择不带这个后缀的补全项,按下Tab/Enter就不会添加多余的导入语句了。
内容的提问来源于stack exchange,提问作者Ivo Coumans
相关产品推荐
相关产品推荐

