[英]How do I prevent code wrapping in Prettier / ESLint
我正在努力在我的 Prettier / ESLint 配置中找到一个设置,它允许我像这样包装我的代码:
var [
first,
second,
third,
etc,
] = data();
当我点击保存时,它总是自动将代码转换为:
var [first, second, third, etc] = data();
对于这个简单的演示,这可能不是什么大问题,但是对于更复杂的解构,这一行将变得难以阅读。
谢谢您的帮助!
Prettier 无论如何都会覆盖 eslint 所做的任何事情,因此如果您在项目中也有 prettier(prettier 也应该在 eslint 之后运行),那么使用 eslint 并不会真正帮助您。 Prettier 没有任何方法可以控制您要问的内容,有几个关于多行样式的 github 讨论,但由于充分的理由,他们通常不会在任何地方进行 go。
Prettier 将根据打印宽度包装 arrays 或对象,因此如果您有一小部分内容,例如在 webpack 中解析:
resolves: ['.tsx', '.ts', '.jsx', '.js']
Prettier 会将其写入单行,因为在多行中写入看起来真的很愚蠢。 这同样适用于任何类似的东西,比如 jest 扩展或插件,其中在整个数组中只有一个条目,如plugins: ["react"]
,仅仅因为一个条目而将它放在多行上看起来真的很愚蠢。
然而,一旦项目占用超过打印宽度(默认为 80),Prettier 就会将其包装起来。对我来说,这确实是应该的方式,我不想要一堆 4 个字符的多行,它看起来不错当它被包裹在一个侧面的阵列中时会更整洁,而当里面的物品更长时,它也可以完美地多线化。
像这样的代码:
var [
first,
second,
third,
etc,
] = data()
看起来真的很糟糕,它属于单行。 也许更漂亮的应该支持多行,这样人们就可以自定义他们的东西,但我永远不会在我的项目中允许这样的代码。
话虽如此,您可以这样做:
var [
first, //
second,
third,
etc,
] = data()
它会阻止更漂亮的线条样式,但IMO你不应该使用它。
在 Eslint 中,您可以使用选项array-element-newline
在数组元素之间强制换行:
不正确的代码:
/*eslint array-element-newline: ["error", "always"]*/
var d = [1, 2, 3];
正确代码:
/*eslint array-element-newline: ["error", "always"]*/
var d = [1,
2,
3];
您还可以查看:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.