使用 Prettier 在 Vue 模板中保留垂直空格
Posted
技术标签:
【中文标题】使用 Prettier 在 Vue 模板中保留垂直空格【英文标题】:Preserve vertical whitespace in Vue template with Prettier 【发布时间】:2019-04-15 19:41:45 【问题描述】:我在我的 Vue 项目中使用 eslint-plugin-vue。
我有以下.prettierrc
文件:
// /.prettierrc
"arrowParens": "avoid",
"bracketSpacing": true,
"insertPragma": false,
"jsxBracketSameLine": false,
"printWidth": 80,
"proseWrap": "preserve",
"requirePragma": false,
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5",
"useTabs": false
还有以下.eslintrc.js
文件:
module.exports =
root: true,
env:
node: true,
,
extends: [
'plugin:vue/recommended',
'@vue/prettier',
],
rules:
'linebreak-style': ['error', 'unix'],
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'vue/max-attributes-per-line': 'off',
'vue/html-self-closing': [
'error',
html:
void: 'always',
normal: 'always',
component: 'always',
,
svg: 'always',
math: 'always',
,
],
,
plugins: ['vue'],
parserOptions:
parser: 'babel-eslint',
,
但不幸的是,prettier 认为
<template>
<header><a href="/" class="logo"> Home </a></header>
</template>
比
<template>
<header>
<a href="/" class="logo">
Home
</a>
</header>
</template>
如何告诉 prettier 在 Vue 模板中保留垂直空白?
有没有类似我想要的规则?
【问题讨论】:
【参考方案1】:这里是 eslint 中 vue 的规则列表:https://vuejs.github.io/eslint-plugin-vue/rules/ 但是,如果您禁用某个规则,那么它将应用于您的所有代码。
另外,您似乎可以告诉 Prettier 忽略一个块:https://prettier.io/docs/en/ignore.html#html
此外,我认为这更“可读”,但这是我的观点 :)
<template>
<header>
<a href="/" class="logo">Home</a>
</header>
</template>
【讨论】:
【参考方案2】:您唯一的选择(解决方法)是使用忽略。
Ex Js 文件。
// prettier-ignore
例如 Html 文件。
<!-- prettier-ignore -->
https://prettier.io/docs/en/ignore.html
【讨论】:
以上是关于使用 Prettier 在 Vue 模板中保留垂直空格的主要内容,如果未能解决你的问题,请参考以下文章
使用 Prettier JS 时保留 then() catch() 格式
Vue项目中使用ellint和prettier-规范和约束我们的代码
Vue项目中使用ellint和prettier-规范和约束我们的代码
如何将 vue.js 模板分离到 .vue 文件中,同时将代码保留在 .js 中?
Laravel vue - 错误删除 `␍` prettier/prettier ,可能可以使用 `--fix` 选项修复