我具有以下ESLint规则设置:
item
但是,在以下情况下(对象键的值是另一个对象),我希望忽略缩进。
这是短毛绒的输出:
"vue/script-indent": [
"error",
4,
{
"baseIndent": 1,
"switchCase": 1,
"ignores":
[
"[init.type=\"ObjectExpression\"]",
"[init.type=\"ArrayExpression\"]"
]
}
]
但是我希望嵌套对象保持不变,所以看起来像这样:
let example =
{
example:
{
test:
"test"
}
}
因此它应该是在应忽略的对象内部的对象。我还希望对象内部也具有数组(因此为什么忽略对象具有对象和数组)
答案 0 :(得分:5)
以下规则将vue/script-indent
配置为忽略.vue
中的嵌套对象/数组:
"vue/script-indent": [
"error",
4,
{
"baseIndent": 1,
"switchCase": 1,
"ignores": [
// nested objects, excluding top level of exported object (data, methods, computed, etc.)
"[value.type='ObjectExpression']:not(:matches(ExportDefaultDeclaration, [left.property.name='exports']) > * > [value.type='ObjectExpression'])",
// nested arrays
"[value.type='ArrayExpression']"
]
}
],
在TypeScript中,类属性的修饰符(例如@Prop private msg!: string
)会导致linter错误,其中linter会忽略后面的每一行。 (vuejs/eslint-plugin-vue#834
) 解决方法::插入一个空方法(即_unused() {}
)作为类的第一个元素。
对象字段的顺序可能会导致短绒棉子忽略整个对象(vuejs/eslint-plugin-vue#833
)。 解决方法::确保对象的第一个字段为文字。