如何让prettier忽略标签属性(printWidth)自动换行?

有一个问题困扰我很久:

在使用的vue的时候,我希望一些元素的属性换行显示而另一些元素的属性不换行,以达到最佳的阅读效果:

例如这样:

// 有些元素 我希望多行显示 每行显示一个
<multie-line
    v-for="child in item.children"
    :key="child.path"
    :is-nest="true"
    :item="child"
    class="nest-menu"
/>

// 有些元素 我希望不换行显示
<signle-line attr1="1" attr2="2" >single-text</single>

但是使用prettier格式化代码的时候就变成了 要么全部换行(配置 singleAttributePerLine: true) 要么只能根据printwidth的长度来换行。当文件内容多了后,格式化出来比较难看。

我想要使用prettier的其它格式化功能,但不想让它非常单一的决定元素属性换行。

不知是否可以实现?或者是否有其它格式化工具可以实现?

阅读 5.5k
1 个回答

按照 printwidth 来折行就行了,如果超出某一个长度就把属性全部折行。设置一个合适的 printwidth 宽度就好了。
不要考虑说 当文件内容多了后,格式化出来比较难看

因为你怎么去评定这个文件内容多是有多少多?有些组件可能五六百行的代码,但是模板可能只有几行,剩下的都是 JS 代码,有些组件可能五六百行里有100多行的模板代码。
你是能知道好看不好看,代码可不知道这个好不好看,只会按照你预设好的规则来执行。


另外就是 prettier 的标语你是需要去理解的:

Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
推荐问题
logo
Microsoft
子站问答
访问
宣传栏