.eslintrc.js 带有“-”(破折号)的键

.eslintrc.js keys with "-" (dash)

eslint 允许 json 以外的格式,包括 .js(如果它作为模块导出)。不幸的是,eslint 所需的键包括像下面的 prefer-const 这样的破折号。需要报价。这似乎有效。

但是:是否有允许 .js 首选项不需要引号的解决方法?例如,Prettier 允许 .prettierrc.js 的驼峰式大小写。这似乎不适用于 eslint。

module.exports = {
  env: {
    browser: true,
    es6:     true
  },
  extends:  "standard",
  parserOptions: {
    sourceType: "module"
  },
  rules: {
    curly: [ 0 ],
    "prefer-const": [ 2 ]
  }
}

如果这对你很重要,我会继续写一个函数来将键名从驼峰式转换为破折号式。

我能够在几行中提出概念验证,所以这应该不是太多的工作。

function fromCamelCase(rules) {
  return Object.entries(rules).reduce(
    (obj, [key, value]) =>
      (obj[key.replace(/[A-Z]/, ch => `-${ch.toLowerCase()}`)] = value, obj),
    { }
  );
}

module.exports = {
  env: {
    browser: true,
    es6:     true
  },
  extends:  "standard",
  parserOptions: {
    sourceType: "module"
  },
  rules: fromCamelCase({
    curly: [ 0 ],
    preferConst: [ 2 ]
  })
}

如果我没看错 source code,eslint 不允许别名规则名称,因此创建自定义插件不是一个选项。