如何在eslintrc文件中使用导入?
我正在尝试使用导入的对象为.eslintrc.js文件中的全局变量设置一些限制,但导入不起作用。如何进行动态eslint配置?
import {loadedGlobals} from '@/util/globals'
module.exports = {
'globals': Object.keys(loadedGlobals).reduce((acum, key) => {
acum[key] = false
return acum
}, acum),
// ...
}
解决方案
如何在eslintrc文件中使用导入?
ESLint当前不支持名为eslintrc
的配置文件,因此我假定您指的是.eslintrc.js
。
ESLint当前不支持ES模块,您可以从其configuration file formats文档上的JavaScript(ESM)项目符号中看到。
如果您愿意安装另一个依赖项,则可以在.eslintrc.js
中使用import
:
- 安装
esm
模块npm i esm -D
(这里我选择作为devDependency
)。 - 创建名为
.eslintrc.esm.js
的新文件作为.eslintrc.js
的同级文件。 - 在
.eslintrc.esm.js
内包括您的ESLint配置。您可以在此处使用import
,并且应将配置导出为export default { // Your config }
。 - 内部
.eslintrc.js
包含以下代码:
const _require = require('esm')(module)
module.exports = _require('./.eslintrc.esm').default
现在,您应该能够像往常一样运行eslint
。这个额外的文件有点笨重,但您可以根据需要将它们组织到一个目录中,并使用eslint
的--config
选项指向新位置。
相关文章