JavaScript import语句编译后自动转为require的问题求助
排查方向参考
检查编辑器插件的自动转换规则
看看你用的编辑器(比如VS Code)有没有安装Prettier、ESLint这类格式化插件,有些插件的配置里会强制把ES6的import转成CommonJS的require。去插件设置里找找相关的语法转换开关,比如ESLint的规则或Prettier的模块语法配置项。核对项目构建工具的配置
检查Webpack、Babel这类构建工具的配置文件是否被改动过。以Babel为例,如果babel.config.js里的@babel/preset-env预设把modules选项设为commonjs,就会自动转换模块语法。看看是否存在类似配置:{ "presets": [ ["@babel/preset-env", { "modules": "commonjs" }] ] }将
modules改为false或auto就能保留ES6模块写法。确认文件的类型关联
检查主JS文件的后缀是否为.js,有没有被编辑器误识别成CommonJS模块(比如语言模式被选为CommonJS)。部分编辑器会根据文件类型自动调整语法处理逻辑。排查依赖更新带来的问题
近期是否更新过项目依赖包?比如Babel、编辑器插件的版本,更新后可能默认开启了模块语法转换规则。可以尝试回退到之前正常版本的依赖,验证问题是否消失。
内容的提问来源于stack exchange,提问作者yougots2chill
相关产品推荐
相关产品推荐

