将ESLint配置从JSON转为JS时遇export语法错误,求解决方案
修复ESLint配置文件的Export语法错误
这个问题其实是Node.js对ESLint配置文件的模块解析规则导致的——默认情况下,.eslintrc.js会被当作CommonJS模块处理,而你用了ES模块的export default语法,所以Node.js会抛出语法错误。
最简单的修复方案:改用CommonJS的导出方式
直接把export default替换成Node.js原生支持的module.exports就可以解决问题,这也是ESLint配置文件最常用的写法:
错误写法:
export default { env: { browser: true // 其他配置... } }
正确写法:
module.exports = { env: { browser: true // 其他配置... } }
如果你习惯先把配置存入变量再导出,也改成CommonJS的方式:
const config = { env: { browser: true // 其他配置... } } module.exports = config
为什么会出现这个问题?
ES模块(import/export)在Node.js中需要显式启用:要么在package.json中添加"type": "module",要么把文件后缀改成.mjs。但ESLint的配置文件默认不推荐这么做,因为会和项目中其他CommonJS模块产生兼容性问题,所以用module.exports是最稳妥、最通用的选择。
内容的提问来源于stack exchange,提问作者Mr. Robot




