Prettier初體驗

榴蓮冰激淋發表於2019-03-04

前言

最近正在新做一個新的專案,準備嘗試一下社群很火的Prettier,一邊學習的同時也正好總結了一些經驗,在這裡做一些記錄

什麼是Prettier

Prettier是一個程式碼格式化工具,它可以支援JS/JSX/TS/Flow/JSON/CSS/LESS等檔案格式。

為什麼要用Prettier

用來替代lint中的一些場景,比如說分號/tab縮排/空格/引號,這些在lint工具檢查出問題之後還需要手動修改,而通常這樣的錯誤都是空格或者符號之類的,這樣相對來說不太優雅,利用格式化工具自動生成省時省力。

如何自定義配置

Prettier提供了一套預設的配置,那麼如何修改配置項符合我們自己的程式碼規範呢,有三種方法可以做到

  1. .prettierrc 檔案

  2. prettier.config.js 檔案

  3. 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',

}

複製程式碼