VSCode 1.68.1保存文件时自动移除import中React引入问题
问题根因
该问题和ESLint无关,是VSCode 1.68版本更新后内置JavaScript/TypeScript语言服务的默认逻辑导致的:
React 17推出了新JSX转换机制,支持JSX文件无需顶部显式导入React即可正常运行。升级后的VSCode会自动识别项目的JSX转换配置,由于你在设置中开启了editor.codeActionsOnSave下的source.organizeImports: true,保存时触发的导入整理逻辑会判定未被实际引用的React导入为冗余代码,自动执行移除操作。这也是你卸载ESLint插件后问题依然存在的原因。
解决方案
根据项目实际技术栈选择对应方案即可:
- 项目使用React 17及以上版本,且已配置新JSX转换(Babel配置
@babel/preset-react时开启runtime: 'automatic',或TS/JS配置中jsx选项设为react-jsx):该自动移除行为符合预期,无需调整配置,保留自动处理逻辑即可,移除冗余React导入不会影响代码运行,还能适当缩减打包体积。 - 项目使用React 16及更低版本,或需要保留显式React导入:在项目根目录新建或修改
jsconfig.json(JS项目)/tsconfig.json(TS项目),添加如下配置,明确告知VSCode当前项目使用旧版JSX转换规则,禁止自动移除React导入:
{ "compilerOptions": { "jsx": "react" } }
- 不想修改项目配置,需要全局关闭VSCode的这类自动导入处理逻辑:打开VSCode全局
settings.json,添加如下配置项:
"javascript.suggest.autoImports": false, "typescript.suggest.autoImports": false
注意:全局关闭配置会对所有打开的项目生效,会影响正常的自动导入提示、导入整理能力,优先推荐使用项目级配置方案,影响范围更可控。
内容的提问来源于stack exchange,提问作者MAK
相关产品推荐
相关产品推荐

