如何在eslintrc文件中使用导入?

2022-03-30 00:00:00 javascript eslint
我正在尝试使用导入的对象为.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

  1. 安装esm模块npm i esm -D(这里我选择作为devDependency)。
  2. 创建名为.eslintrc.esm.js的新文件作为.eslintrc.js的同级文件。
  3. .eslintrc.esm.js内包括您的ESLint配置。您可以在此处使用import,并且应将配置导出为export default { // Your config }
  4. 内部.eslintrc.js包含以下代码:
const _require = require('esm')(module)
module.exports = _require('./.eslintrc.esm').default
现在,您应该能够像往常一样运行eslint。这个额外的文件有点笨重,但您可以根据需要将它们组织到一个目录中,并使用eslint--config选项指向新位置。

相关文章