javascript - eslint 禁用扩展覆盖

标签 javascript node.js eslint

在您想要“降级”js解析器的覆盖的情况下,您如何关闭extends来自 parent ? parserOptions很容易覆盖,因为它是基于键的。 extends作为一个空数组什么都不做,因为它试图将一个空列表附加到原始数组。如果将其设置为 null ,你得到一个配置解析器错误。

module.exports = {
  root: true,
  parserOptions: {
    ecmaVersion: 2018,
    sourceType: 'module'
  },
  extends: [
    'eslint:recommended'
  ],
  overrides: [
    {
      files: ['vendor/**/*.js'],
      parserOptions: {
        ecmaVersion: 5,
        sourceType: 'script'
      },
      extends: [] // I want 'eslint:recommended' removed.
    }
  ]
};

解决方法包括遍历任何扩展的规则集并将它们全部关闭。

module.exports = {
  root: true,
  parserOptions: {
    ecmaVersion: 2018,
    sourceType: 'module'
  },
  extends: [
    'eslint:recommended'
  ],
  overrides: [
    {
      files: ['vendor/**/*.js'],
      parserOptions: {
        ecmaVersion: 5,
        sourceType: 'script'
      },
      rules: Object.keys(require(path.resolve(path.dirname(require.resolve('eslint')), '../conf/eslint-recommended')).rules).reduce((rules, rule) => {
        rules[rule] = 0;
        return rules;
      }, {})
    }
  ]
};

有没有更清洁的方法来做到这一点?

最佳答案

这里有两种方法可以做到这一点:

  • 单独的文件:
    您可以放置​​不同的.eslintrc.js vendor/ 内的文件与 root: true .这将忽略 .eslintrc.js在您的项目根目录。
  • 单独覆盖:

  • module.exports = {
      root: true,
      overrides: [
        {
          files: ['*.js'],
          excludedFiles: 'vendor/**/*.js',
          // OR
          // files: ['src/**/*.js']
          parserOptions: {
            ecmaVersion: 2018,
            sourceType: 'module',
          },
          extends: ['eslint:recommended'],
        },
        {
          files: ['vendor/**/*.js'],
          parserOptions: {
            ecmaVersion: 5,
            sourceType: 'script',
          },
        },
      ],
    };
    

    关于javascript - eslint 禁用扩展覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57107800/

    相关文章:

    javascript - 制表符添加每行带有按钮的列

    Javascript 检查数字值是否为零(而不是 null)或更高但不是负数

    node.js - 如何在 NodeJs 中使用 AWS X-Ray?

    javascript - Eslint 替换,无法读取方法

    javascript - 我可以在浏览器中使用带有 babel 的 ES 模块,而不捆绑我的代码吗?

    javascript - jQuery AJAX - 当加载方法失败时重定向到 404 页面

    javascript - IOS 设备中的浏览器不会在后台自动播放声音

    node.js - 在 NodeJS 中将 200'000 行以上的大型 csv 文件插入 MongoDB

    javascript - 错误 : No ESLint configuration found

    javascript - Eslint "No files matching the pattern "lint“被发现。请检查模式中的输入错误。”错误