prettier代碼格式化工具


1.兩大linter說起

  • eslint 為js而設計的可插拔的檢查程序
  • tslint 為ts語言而設計的可擴展的檢查工具(將在2019年取消更新,建議使用eslint)

兩種linter都可以實現fix功能,所謂fix就是將原代碼轉化為符合一定規則的新代碼。雖然linter工具fix之后的代碼,解決了大部分問題,但可能有些地方並不符合我們的閱讀代碼的習慣,比如一行代碼過長。

在強迫症的影響下,不同的人對自己的代碼進行不同程度的”美化“,甚至遇到他人代碼時也會順手美化一把。

最終導致項目中的代碼風格不能統一。

 

2.prettier簡介

prettier是一種保證代碼一致性、兼具美化效果的代碼格式化工具

2.1 not only js

前有jslint,而后由於eslint過於成功,導致了jslint已經無人問津,這也讓我們誤以為eslint只專注於js
下面列舉了它所支持的其他語言

  • JavaScript、jsx
  • flow、typescript
  • json
  • css、less、scss
  • graphql
  • markdown
  • yaml

2.2 IDE

有人的地方就有江湖,有編輯器的地方就有prettier,目前流行的ide都能支持prettier

  • vscode
  • webstorm
  • atom
  • visual studio
  • sublime

以上列舉了前端比較常用的幾個工具,需要確定所使用的的編輯器是否支持prettier是否支持,請移步官網

2.3 parser

prettier針對不同的語言,所使用的的parser有多個,例如編譯graphql時所使用的就是graphql/language。
而編譯js的目前有兩個,即babylon(默認)、flow,由於babylon的bug較少,對編譯工作支持度較好,所以默認情況下選用babylon即可。
babylon即babel6的編譯工具,在babel7中已更名為@babel/parser

資源搜索網站大全 http://www.szhdn.com 廣州VI設計公司https://www.houdianzi.com

3.eslint融合

eslint作為強大的linter工具,與vscode配合后能降低代碼問題的風險,在coding的過程中就發現潛在問題,提高代碼質量。

3.1 eslint-config-prettier

eslint的config可以繼承自第三方包的config,config中定義了rules的開關規則,eslint-config-prettier主要定義了prettier格式化后導致eslint報錯的那些規則

3.2 eslint-plugin-prettier

eslint與prettier的格式化需要分別進行,如果想要讓eslint fix的同時,也能兼顧prettier的規則進行格式化,就需要使用到eslint-plugin-prettier這個插件。

它的主要作用就是專門定義了eslint fix的prettier規則

3.3 融合寫法

在.eslintrc文件中加入以下配置

{
  "extends": ["plugin:prettier/recommended"] }

這段代碼有三個作用

  • 繼承prettier的config規則
  • 開啟rules的 "prettier/prettier": "error"
  • eslint fix的同時執行prettier格式化


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM