如何在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选项指向新位置。
相关文章