【发布时间】:2021-01-09 08:14:00
【问题描述】:
如何正确设置 linting 与 prettier 和 vue linters 并在 vue 文件中与 typescript 代码发生冲突?
一个例子:
默认值:右括号(在这种情况下-->关闭li)在下一行。
<template>
<div>
<li
class="o-playtime__head__info__tags__item"
v-if="playtimeItemObject.event.ageRecommendation"
>
...
</div>
</div>
</template>
我想要右括号在同一行:
<template>
<div>
<li
class="o-playtime__head__info__tags__item"
v-if="playtimeItemObject.event.ageRecommendation">
...
</div>
</div>
</template>
Eslint 配置:
module.exports = {
root: true,
env: {
node: true
},
extends: [
'plugin:@typescript-eslint/recommended',
'prettier/@typescript-eslint',
'plugin:prettier/recommended',
"plugin:vue/essential",
"@vue/prettier",
"@vue/typescript",
],
parserOptions: {
parser: "@typescript-eslint/parser"
},
};
更漂亮的配置:
module.exports = {
semi: true,
trailingComma: 'all',
tabWidth: 2,
};
添加 vue linting 规则以更改右括号:
rules: {
"vue/html-closing-bracket-newline": ["error", {
"singleline": "never",
"multiline": "never"
}]
}
这会导致 vue/html-closure-bracket-newline 和 prettier/prettier 之间发生冲突。 有没有办法在这种情况下推翻更漂亮的?还是我必须同时配置 vue 和 prettier? 或者有没有一种更好的方法来结合 vue 开发中的 linter?我根本不喜欢两种不同格式化程序之间的组合。
有没有办法让不同的 linter 处理 vue 文件的不同段?
-
<template>--> 由 vue 整理/推荐 -
<script lang="ts">--> 由 prettier 整理/推荐 // prettier/@typescript-eslint
【问题讨论】: