如何让 Prettier 忽略一段代码?

时间:2021-02-18 11:36:45

标签: javascript prettier

假设我们有一行代码:

const a = 'a'; const b = 'b';

我们不希望它被 Prettier 格式化。

到目前为止我尝试过的:

1)

// prettier-ignore
const a = 'a'; const b = 'b';
// prettier-ignore-start
const a = 'a'; const b = 'b';
// prettier-ignore-end

在这两种情况下,它都会变成:

const a = 'a';
const b = 'b';

那么如何忽略一段代码?

5 个答案:

答案 0 :(得分:1)

// prettier-ignore 在这里不起作用的原因是 // prettier-ignore 将从格式中排除抽象语法树中的下一个节点(请参阅https://prettier.io/docs/en/ignore.html)。

在您的情况下,下一个节点只会是 const a = 'a';。例如,

// prettier-ignore
const a = 
  'a';

格式化后会保留。

如果您想将两个分配放在一行中而不更改整个文件的漂亮配置,如果您使用的是 es6 或节点,则可以使用 destructuring assignment

const [a, b] = ["a", "b"];

答案 1 :(得分:0)

有时可以将多个语句包装在一个块中,并在其前面加上 // prettier-ignore

// prettier-ignore
{
abcRouter('/api/abc', server);
xRouter  ('/api/x', server);
}

当然,这对于块级 const 声明没有意义,但是您编写的那不是您的实际代码,只是一个示例。所以这是一个在某些情况下但并非在所有情况下都有效的解决方案。总体而言,该策略是将多个事物包装在一个可以prettier-ignored 的事物中。

另一种选择是将您不想格式化的所有代码(例如,因为它是生成的)移动到由 .prettierignore 排除的单独文件中。

prettier-ignore-startprettier-ignore-end 支持 only in Markdown

答案 2 :(得分:0)

你可以忽略整个方法

// prettier-ignore
function myFunc() {
    const a = 'a'; const b = 'b';
    return a + b;
}

实际上我只试过打字稿。但我认为应该也适用于 JS。

答案 3 :(得分:0)

您可以忽略目前不支持的代码块,您的选择是仅使用 // prettier-ignore

示例如下:

// prettier-ignore
const a = 'a';
const b = 'b';

// prettier-ignore
function xyz() {
 console.log({a, b})
}

已知问题 -> https://github.com/prettier/prettier/issues/5287

文档 -> https://prettier.io/docs/en/ignore.html#javascript

答案 4 :(得分:-3)

对我有用的是使用这个

unique_key

这是用于 django 和 Vue CDN

相关问题