前言
最近正在新做一個新的專案,準備嘗試一下社群很火的Prettier,一邊學習的同時也正好總結了一些經驗,在這裡做一些記錄
什麼是Prettier
Prettier是一個程式碼格式化工具,它可以支援JS/JSX/TS/Flow/JSON/CSS/LESS等檔案格式。
為什麼要用Prettier
用來替代lint中的一些場景,比如說分號/tab縮排/空格/引號,這些在lint工具檢查出問題之後還需要手動修改,而通常這樣的錯誤都是空格或者符號之類的,這樣相對來說不太優雅,利用格式化工具自動生成省時省力。
如何自定義配置
Prettier提供了一套預設的配置,那麼如何修改配置項符合我們自己的程式碼規範呢,有三種方法可以做到
-
.prettierrc 檔案
-
prettier.config.js 檔案
-
package.json 中配置prettier屬性
Prettier會檢查配置檔案並自動讀取檔案中的配置,我們只需要選一種方法配置就好了,我現在選的是第二種。 是不是有種感覺跟lint工具很像呢?
整合VS CODE
只需要下載prettier的外掛就可以了,在外掛市場搜尋可以直接搜尋到
下面是愉快使用的相關配置
editor.formatOnPaste: Boolean 貼上時自動格式化
editor.formatOnSave: Boolean 儲存時自動格式化
editor.formatOnType: Boolean 鍵入一行後是否格式化
editor.formatOnSaveTimeout: Int 儲存後延時格式化
複製程式碼
可配置的屬性
分享一下我的配置檔案
module.exports = {
// tab縮排大小,預設為2
tabWidth: 2,
// 使用tab縮排,預設false
useTabs: true,
// 使用分號, 預設true
semi: false,
// 使用單引號, 預設false(在jsx中配置無效, 預設都是雙引號)
singleQuote: true,
// 行尾逗號,預設none,可選 none|es5|all
// es5 包括es5中的陣列、物件
// all 包括函式物件等所有可選
TrailingCooma: "none",
// 物件中的空格 預設true
// true: { foo: bar }
// false: {foo: bar}
bracketSpacing: true,
// JSX標籤閉合位置 預設false
// false: <div
// className=""
// style={{}}
// >
// true: <div
// className=""
// style={{}} >
jsxBracketSameLine:false,
// 箭頭函式引數括號 預設avoid 可選 avoid| always
// avoid 能省略括號的時候就省略 例如x => x
// always 總是有括號
arrowParens: 'always',
}
複製程式碼