vscode + prettier 專治代碼潔癖

前言

相信很多小夥伴都糾結過自己代碼的格式化問題,特別是團隊協作的時候,加上前端語言種類繁雜,各種語法糖+團隊個人的敲碼習慣,會讓你感覺到一團糟。
在過往,我們嘗試過很多方式,從EditorConfig到各種***Lint, 還要研究各種配置,還是沒辦法滿足我們的需求。
現在,prettier幫到你。

介紹

prettier是一個比較武斷的格式化工具(官方介紹的逗比級翻譯)。 我開始也是不能理解這個東西,因爲已經習慣了搗鼓各種lint配置,總想着能弄一套真的適合自己團隊風格習慣的配置出來, 結果就是一直在路上。
爲什麼說prettier是武斷的? 它個各種lint工具不一樣,prettier只關注格式化,並不具有lint檢查語法等能力,所以開始大家可能會經常碰到lint搭配prettier會出現衝突。而且prettier獨斷自行一套格式化風格,雖然提供配置,也只是配置少量的關鍵屬性,能在一定程度上保證的代碼的風格統一,而且使用門檻極低, 關鍵的他的風格並不醜,更容易讓大家接受。
同時,prettier支持我們大前端目前大部分語言處理,包括JavaScript · Flow · TypeScript · CSS · SCSS · Less · JSX · Vue · GraphQL · JSON · Markdown,這代表着, 你幾乎可以用一個工具都能搞定所有的代碼格式化問題。

怎麼玩

其實prettier官網有提供各種使用的姿勢,這裏首先跟大家介紹我們常用的vscode編輯器集成

  • 插件

    首先安裝vscode的插件prettier-vscode
    安裝成功後,編輯器默認的格式化處理就會被prettier代替, 默認快捷鍵是alt + shift + f

  • 配置

    插件安裝成功後,編輯器的配置setting.json會出現prettier插件的相關配置節點,同時也能看到一些默認的配置信息。
    這裏寫圖片描述
    這裏你可以針對個人或團隊喜好修改一些編輯器的全局配置,實際項目使用當中比較推薦用配置文件.prettierrc的方式進行針對性的配置,方便團隊協作使用。
    配置文件的選項可以參考官網: https://prettier.io/docs/en/configuration.html

實例介紹

這裏第一篇首先給大家演示一下vue + typescript + scss項目的相關配置
vue的vscode神級插件vetur這裏就不多做介紹了,vetur的默認格式化工具也是使用的prettier,非常親近。

  • typescirpt, 這裏仍然需要用到tslint 和 tslint-config-prettier配置
$ yarn add -D tslint tslint tslint-config-prettier

在項目根目錄添加tslint.json, 這裏使用官方推薦配置: tslint:recommended

{
  "extend": ["tslint:recommended", "tslint-config-prettier"],
}

這樣tslin-config-prettier就會想你原先lint配置裏涉及到格式化話的配置覆蓋重寫,其他lint同理。

  • scss, 這裏需要用到stylelint和prettier-stylelint
$ yanr add -D stylelint prettier-stylelint stylelint-config-ydj

項目根目錄添加stylint配置文件.stylelintrc.js

module.exports = {
    extends: [
        'stylelint-config-ydj/scss', // your stylint config
        './node_modules/prettier-stylelint/config.js'
    ],
    rules: {
        'string-quotes': 'double'
    }
};
  • prettier配置

項目級的配置,在項目根目錄添加配置文件.prettierrc

{
    "eslintIntegration": true,
    "stylelintIntegration": true,
    "tabWidth": 4,
    "singleQuote": true,
    "semi": false
}

PS: 這裏需要注意的點,目前vetur的template還沒有格式化還沒有很好的支持prettier,應該說目前官方只推薦使用js-beautify-html, 雖說即將棄用,但是reshape集成還沒有發佈正式版,使用js-beautify-html+prettier插件的時候可能會導致template塊無法格式化,我們要在編輯器配置裏面加入這段

// vetur configuration
"vetur.format.defaultFormatter.html": "js-beautify-html",

// prettier configuration
"prettier.disableLanguages": [
    "vue"
],

最終效果演示
這裏寫圖片描述
其他類型的項目和語言配置請期待下一篇!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章