命令列介面 (CLI)
使用 prettier
指令從命令列執行 Prettier。
prettier [options] [file/dir/glob ...]
要執行您本地安裝的 Prettier 版本,請在指令前加上
npx
或yarn
(如果您使用 Yarn),例如npx prettier --help
或yarn prettier --help
。
要直接格式化檔案,請使用 --write
。(注意:這會覆寫您的檔案!)
實際上,這可能看起來像這樣
prettier . --write
此指令會格式化目前目錄及其子目錄中所有 Prettier 支援的檔案。
建議您務必確認 prettier --write .
只會格式化您專案中想要格式化的內容。使用 .prettierignore
檔案來忽略不應格式化的內容。
一個更複雜的例子
prettier docs package.json "{app,__{tests,mocks}__}/**/*.js" --write --single-quote --trailing-comma all
不要忘記萬用字元 (globs) 周圍的**引號**!引號可確保 Prettier CLI 展開萬用字元,而不是您的 shell,這對於跨平台使用非常重要。
最好使用 設定檔 來設定格式化選項,例如
--single-quote
和--trailing-comma
,而不是將它們作為 CLI 旗標傳遞。這樣 Prettier CLI、編輯器整合 和其他工具都可以知道您使用的選項。
檔案模式
給定一個路徑/模式列表,Prettier CLI 首先將其中的每個條目視為一個字面路徑。
如果路徑指向現有檔案,Prettier CLI 會處理該檔案,並且不會將路徑解析為萬用字元模式。
如果路徑指向現有目錄,Prettier CLI 會遞迴地在該目錄中尋找支援的檔案。此解析過程基於檔案副檔名和 Prettier 及其 外掛 與支援的語言相關聯的已知檔案名稱。
否則,該條目將使用
fast-glob
模組的萬用字元語法 解析為萬用字元模式。
Prettier CLI 將忽略位於 node_modules
目錄中的檔案。要取消此行為,請使用 --with-node-modules
旗標。
展開參數時,Prettier CLI 不會追蹤符號連結。
要跳脫萬用字元中的特殊字元,可以使用兩種跳脫語法之一:prettier "\[my-dir]/*.js"
或 prettier "[[]my-dir]/*.js"
。兩者都匹配名為 [my-dir]
的目錄中的所有 JS 檔案,但是後一種語法更佳,因為前一種語法在 Windows 上不起作用,Windows 將反斜線視為路徑分隔符號。
--check
當您想要檢查您的檔案是否已格式化時,可以使用 --check
旗標(或 -c
)執行 Prettier。這將輸出易於理解的訊息以及未格式化的檔案列表(如果有的話)。
prettier . --check
所有檔案都已格式化時的控制台輸出
Checking formatting...
All matched files use Prettier code style!
某些檔案需要重新格式化時的控制台輸出
Checking formatting...
[warn] src/fileA.js
[warn] src/fileB.js
[warn] Code style issues found in 2 files. Run Prettier with --write to fix.
在第二種情況下,該指令將返回退出代碼 1
,這在 CI 流程中很有幫助。易於理解的狀態訊息可幫助專案貢獻者對可能出現的問題做出反應。為了盡量減少 prettier --check
發現未格式化檔案的次數,您可能需要在您的儲存庫中設定 pre-commit hook。應用此實務將盡量減少 CI 因程式碼格式問題而失敗的次數。
如果您需要將未格式化檔案的列表通過管道傳輸到另一個指令,則可以使用 --list-different
旗標代替 --check
。
退出代碼
代碼 | 資訊 |
---|---|
0 | 所有內容都已正確格式化 |
1 | 某些內容未正確格式化 |
2 | Prettier 出現問題 |
--debug-check
如果您擔心 Prettier 會更改程式碼的正確性,請在指令中新增 --debug-check
。如果 Prettier 偵測到程式碼正確性可能已更改,這將導致 Prettier 輸出錯誤訊息。請注意,--write
不能與 --debug-check
一起使用。
--find-config-path
與 --config
如果您重複使用 prettier
格式化個別檔案,當 Prettier 嘗試查找 設定檔 時,會產生少量的效能成本。為了跳過此步驟,您可以要求 Prettier 查找一次設定檔,並在稍後重複使用它。
$ prettier --find-config-path path/to/file.js
path/to/.prettierrc
這將提供您設定檔的路徑,您可以將其傳遞給 --config
prettier path/to/file.js --write --config path/to/.prettierrc
如果您的設定檔位於 Prettier 無法找到的地方,例如 config/
目錄,您也可以使用 --config
。
如果您沒有設定檔,或者想要忽略它(如果有的話),您可以改為傳遞 --no-config
。
--ignore-path
包含描述要忽略檔案之模式的檔案路徑。預設情況下,Prettier 會尋找 ./.gitignore
和 ./.prettierignore
。
接受多個值。
--list-different
另一個有用的標誌是 --list-different
(或 -l
),它會印出與 Prettier 格式不同的檔案檔名。如果存在差異,腳本會出錯,這在 CI 情境中很有用。
prettier . --single-quote --list-different
您也可以使用 --check
標誌,它的作用方式與 --list-different
相同,但還會在 stdout 印出易於理解的摘要訊息。
--no-config
不要尋找設定檔。將使用預設設定。
--config-precedence
定義如何在 CLI 選項組合中評估設定檔。
cli-override(預設)
CLI 選項優先於設定檔
file-override
設定檔優先於 CLI 選項
prefer-file
如果找到設定檔,將評估它並忽略其他 CLI 選項。如果找不到設定檔,CLI 選項將正常評估。
此選項增加了對編輯器整合的支援,在這種整合中,用戶定義其預設配置,但希望尊重專案特定配置。
--no-editorconfig
在解析設定時,不要考慮 .editorconfig
。詳情請參閱 prettier.resolveConfig
文件。
--with-node-modules
Prettier CLI 將忽略位於 node_modules
目錄中的檔案。要取消此行為,請使用 --with-node-modules
旗標。
--write
這會就地改寫所有已處理的檔案。這與 eslint --fix
工作流程相當。您也可以使用 -w
別名。
--log-level
更改 CLI 的記錄級別。有效的選項為
error(錯誤)
warn(警告)
log
(日誌)(預設)debug(除錯)
silent(靜默)
--stdin-filepath
Prettier CLI 將像 stdin 一樣處理的檔案路徑。例如
abc.css
.name {
display: none;
}
shell
$ cat abc.css | prettier --stdin-filepath abc.css
.name {
display: none;
}
--ignore-unknown
使用 --ignore-unknown
(或 -u
),Prettier 將會忽略符合模式的未知檔案。
prettier "**/*" --write --ignore-unknown
--no-error-on-unmatched-pattern
當模式不匹配時,防止錯誤發生。
--cache
如果啟用此選項,則以下值將用作快取鍵,並且僅當其中一個值更改時才會格式化檔案。
- Prettier 版本
- 選項
- Node.js 版本
- (如果
--cache-strategy
為metadata
)檔案中繼資料,例如時間戳記 - (如果
--cache-strategy
為content
)檔案內容
prettier . --write --cache
執行 Prettier 時不使用 --cache
將會刪除快取。
此外,由於快取檔案儲存在 ./node_modules/.cache/prettier/.prettier-cache
,因此您可以使用 rm ./node_modules/.cache/prettier/.prettier-cache
手動移除它。
插件版本和實作並未用作快取鍵。建議您在更新插件時刪除快取。
--cache-location
--cache
旗標使用的快取檔案位置路徑。如果您沒有明確指定 --cache-location
,Prettier 會將快取檔案儲存在 ./node_modules/.cache/prettier/.prettier-cache
。
如果傳遞了檔案路徑,則該檔案將用作快取檔案。
prettier . --write --cache --cache-location=path/to/cache-file
--cache-strategy
用於偵測已更改檔案的快取策略。可以是 metadata
或 content
。
一般來說,metadata
速度更快。但是,content
適用於在不更改檔案內容的情況下更新時間戳記。例如,在 git clone
等 git 操作期間可能會發生這種情況,因為它不會追蹤檔案修改時間。
如果未指定策略,將使用 content
。
prettier . --write --cache --cache-strategy metadata