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

时间:2019-05-20 18:27:03

标签: 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),
    // ...
}

2 个答案:

答案 0 :(得分:0)

您可能会注意到导出对象时使用的是旧语法。您可以尝试使用require()代替导入。

或者,您可以查看Shareable Configs

答案 1 :(得分:0)

<块引用>

如何在eslintrc文件中使用import?

ESLint 目前不支持名为 eslintrc 的配置文件,所以我假设您的意思是 .eslintrc.js

ESLint 当前不支持 ES 模块,您可以从其 configuration file formats 文档中的 JavaScript (ESM) 项目符号项中看出。

如果您愿意在此处安装另一个依赖项,您可以如何在 import 中使用 .eslintrc.js

  1. 安装 esm 模块,npm i esm -D(这里我选择作为 devDependency)。
  2. 创建一个名为 .eslintrc.js 的新文件作为 .eslintrc.esm.js 的同级文件。
  3. .eslintrc.esm.js 中包含您的 ESLint 配置。在这里您可以使用 import,您应该将您的配置导出为 export default { // Your config }
  4. .eslintrc.esm.js 中包含以下代码:
require = require('esm')(module)
module.exports = require('./.eslintrc.esm').default

现在您应该可以像往常一样运行 eslint。额外的文件有点笨重,但您可以根据需要将它们组织在一个目录中,并使用 --configeslint 选项指向新位置。