JS.VUE.SCRIPT.INDENT
Enforce consistent indentation in '<script>'
Rule Details
This rule enforces a consistent indentation style in <script>. The default style is 2 spaces.
{'vue/script-indent': ['error']}
Copy
<script>
let a = {
foo: 1,
bar: 2
}
let b = {
foo: 1,
bar: 2
},
c = {
foo: 1,
bar: 2
}
const d = {
foo: 1,
bar: 2
},
e = {
foo: 1,
bar: 2
}
</script>
Options
This rule has some options.
Copy
{
"vue/script-indent": ["error", TYPE, {
"baseIndent": 0,
"switchCase": 0,
"ignores": []
}]
}
TYPE(number | "tab") ... The type of indentation. Default is2. If this is a number, it's the number of spaces for one indent. If this is"tab", it uses one tab for one indent.baseIndent(integer) ... The multiplier of indentation for top-level statements. Default is0.switchCase(integer) ... The multiplier of indentation forcase/defaultclauses. Default is0.ignores(string[]) ... The selector to ignore nodes. The AST spec is here (https://github.com/vuejs/vue-eslint-parser/blob/master/docs/ast.md). You can use esquery (https://github.com/estools/esquery#readme) to select nodes. Default is an empty array.
This rule only checks .vue files and does not interfere with other .js files. Unfortunately the default indent rule when turned on will try to lint both, so in order to make them complementary you can use overrides setting and disable indent rule on .vue files:
Copy
{
"rules": {
"vue/script-indent": ["error", 4, { "baseIndent": 1 }]
},
"overrides": [
{
"files": ["*.vue"],
"rules": {
"indent": "off"
}
}
]
}
2, "baseIndent": 1
{'vue/script-indent': ['error', 2, { 'baseIndent': 1 }]}
Copy
<script>
let a = {
foo: 1,
bar: 2
}
let b = {
foo: 1,
bar: 2
},
c = {
foo: 1,
bar: 2
}
const d = {
foo: 1,
bar: 2
},
e = {
foo: 1,
bar: 2
}
</script>