.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 不允许别名规则名称,因此创建自定义插件不是一个选项。
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 不允许别名规则名称,因此创建自定义插件不是一个选项。