![](/img/trans.png)
[英]ESLint and Prettier Conflict, Unable to Disable Prettier for code block
[英]How to make Prettier to ignore a block of code?
假設我們有一行代碼:
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';
那么如何忽略一段代碼呢?
這很糟糕,但目前不支持。
雖然這不適用於 OP 的示例,但一種選擇是將prettier-ignore
注釋添加到要忽略的每一行的開頭,使用/* */
注釋樣式,例如。
/* prettier-ignore */ import { SomeTypeA, SomeTypeB, SomeTypeC } from './some-long-folder-name/super-long-import';
/* prettier-ignore */ import { someFnA, someFnB, someFnC, } from './another-long-folder-name/super-long-import';
在我看來,這比其他選擇更容易讓人眼前一亮;
讓 prettier 重新格式化導入:
import {
SomeTypeA,
SomeTypeB,
SomeTypeC,
} from './some-long-folder-name/super-long-import';
import {
someFnA,
someFnB,
someFnC,
} from './another-long-folder-name/super-long-import';
在每個導入上方指定// prettier-ignore
注釋:
// prettier-ignore
import { SomeTypeA, SomeTypeB, SomeTypeC } from './some-long-folder-name/super-long-import';
// prettier-ignore
import { someFnA, someFnB, someFnC, } from './another-long-folder-name/super-long-import';
// prettier-ignore
在這里不起作用的原因是// prettier-ignore
將從格式化中排除抽象語法樹中的下一個節點(參見https://prettier.io/docs/en/ignore.html )。
在您的情況下,下一個節點只會是const a = 'a';
. 例如,
// prettier-ignore
const a =
'a';
格式化后會保留。
如果您想將兩個分配保留在一行而不更改整個文件的更漂亮的配置,如果您使用的是 es6 或節點,則可以使用解構分配:
const [a, b] = ["a", "b"];
有時可以將多個語句包裝在一個塊中,並在其前面加上// prettier-ignore
:
// prettier-ignore
{
abcRouter('/api/abc', server);
xRouter ('/api/x', server);
}
當然,這對於塊級const
聲明沒有意義,但你寫的不是你的實際代碼,只是一個例子。 所以這是一個在某些情況下但並非在所有情況下都有效的解決方案。 總體而言,該策略是將多個東西包裝在一個可以prettier-ignore
的東西中。
另一種選擇是將您不想格式化的所有代碼(例如,因為它已生成)移動到.prettierignore
排除的單獨文件中。
prettier-ignore-start
和 prettier prettier-ignore-end
僅在 Markdown中受支持。
你可以忽略整個方法
// prettier-ignore
function myFunc() {
const a = 'a'; const b = 'b';
return a + b;
}
實際上我只嘗試過 typescript。 但我認為也應該適用於 JS。
您可以忽略目前不支持的代碼塊,您的選擇是僅使用// prettier-ignore
下面的例子:
// prettier-ignore
const a = 'a';
const b = 'b';
// prettier-ignore
function xyz() {
console.log({a, b})
}
禁用 VS 代碼中的自動換行符。
打開 vs code => Code => Preferences => Settings => 在搜索字段中輸入:Prettier 現在從提供的 Prettier 設置中,選擇 Prettier: Print Width
r/vscode - 禁用 VS 代碼中的自動換行。 截屏
而不是 80,你可以把它變成一個大數字。 例如:999999 現在您不必擔心換行了。
https://www.reddit.com/r/vscode/comments/lkz3d7/to_disable_the_auto_line_break_in_the_vs_code/
對我有用的是使用這個
<!-- prettier-ignore -->
{% extends "main/base.html" %}
{% load humanize static %}
{% block base_content %}
<!-- prettier-ignore-end -->
這適用於 django 和 Vue CDN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.