在Vue項目中使用Eslint+Prettier+Stylelint


准備工作

首先搭建vue項目,lint選擇ESLint + Prettier,配置方式選擇In dedicated config files。具體搭建過程這里就不贅述了,如果不熟悉的同學可以點擊這里。

 

配置Eslint

項目搭建完成后,根目錄下會自動生成一個.eslintrc.js文件,我們直接來看默認的配置:

module.exports = { root: true, env: { node: true }, extends: ["plugin:vue/essential", "@vue/prettier"], rules: { "no-console": process.env.NODE_ENV === "production" ? "error" : "off", "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off" }, parserOptions: { parser: "@typescript-eslint/parser" } };

這里extends是一個數組,數組第一個成員"plugin:vue/essential"表示的是:引入eslint-plugin-vue插件,並開啟essential類別中的一系列規則。

eslint-plugin-vue把所有規則分為四個類別,依次為:base, essential, strongly-recommended, recommended,后面的每個類別都是對前一個類別的拓展。除了這四個類別外,還有兩個未歸類的規則,所有的類別及規則都可以在這里查看。

這里默認啟用的是essential類別里面的規則,我們也可以使用"plugin:vue/strongly-recommended" 或 "plugin:vue/recommend" 啟用更多的規則,如果僅僅想啟用strongly-recommended和recommend里面的部分規則,可以在.eslintrc.js文件的rules選項中配置。

 

eslint 補充知識

extends的屬性值可以是:

  • 指定配置的字符串(配置文件的路徑、可共享配置的名稱、eslint:recommended 或 eslint:all)
  • 字符串數組:每個配置繼承它前面的配置

可選的配置項如下:

  • eslint:recommended 啟用一些列核心規則
  • 可共享的配置(比如,eslint-config-standard),這是一個npm包,屬性值可以省略包名的前綴eslint-config-
  • 插件,是一個 npm 包,屬性值可以省略包名的前綴eslint-plugin-,屬性值為,plugin:包名/配置名稱
  • 指向一個配置文件的相對路徑或絕對路徑
  • eslint:all 啟用當前安裝的eslint版本中所有核心規則,不推薦使用

plugins的屬性值是一個字符串列表:

  • 在使用插件之前,你必須安裝它
  • 插件名稱可以省略eslint-plugin-前綴

eslint規則文檔中,帶扳手圖標的規則就是eslint能夠自動修復的規則。而不帶該圖標的規則,eslint則只能給出錯誤或警告,需要開發者手動修復。

 

配置Prettier

我們搭建項目時已經選擇了Prettier,所以這里可以不用再做額外的配置。如果想改變Prettier的默認配置,只需要在根目錄下新建一個.prettierrc.js文件,在里面修改配置就可以了。

如果搭建項目時沒有選用Prettier,需要我們自己執行以下操作:

1,安裝 prettier

yarn add --dev prettier eslint-config-prettier eslint-plugin-prettier

2,修改.eslintrc.js

  extends: [
    // ...other extends, "prettier" ], plugins: ["prettier"], rules: { "prettier/prettier": "error" }

  extends: [
    // ...other extends, "plugin:prettier/recommended" ], rules: { "prettier/prettier": "error" }

如果用eslint-config-prettier啟用Prettier,建議不要使用"plugin:vue/strongly-recommended"或"plugin:vue/recommend",因為這兩個類別中有部分規則與Prettier沖突。

所以更推薦的做法是安裝 @vue/eslint-config-prettier eslint-plugin-prettier,然后修改.eslintrc.js

extends: [
  // ...other extends, "@vue/prettier" ],

prettier 補充知識

  • eslint-config-prettier 關閉 Eslint 中與 Prettier 沖突的選項,只會關閉沖突的選項,不會啟用Prettier的規則
  • eslint-plugin-prettier 啟用 Prettier 的規則

 

配置 Stylelint

使用vue-cli搭建項目時,目前還沒有stylelint選項,需要我們自己安裝相關的 npm 包

1,安裝

yarn add --dev stylelint stylelint-scss stylelint-config-standard-scss stylelint-config-prettier

2,根目錄下新增 .stylelintrc.js文件 這里列出我自己的stylelint配置

module.exports = { extends: ["stylelint-config-standard-scss", "stylelint-config-prettier"], rules: { "declaration-colon-space-after": "always-single-line", "declaration-colon-space-before": "never", "declaration-block-trailing-semicolon": "always", "rule-empty-line-before": [ "always", { ignore: ["after-comment", "first-nested"] } ] } }

stylelint把所有規則分為三個類別:

  • Possible errors: 可以使用stylelint-config-recommended啟用這些規則
  • Stylistic issues: stylelint-config-standard拓展了Possible errors,並啟用此類的規則
  • Limit language features: 其他規則,如果有需要,可以在rules里面配置

stylelint的規則分類可以在這個頁面查看

廣州品牌設計公司https://www.houdianzi.com PPT模板下載大全https://redbox.wode007.com

VSCode 保存時自動修復

1,打開VSCode, 安裝 ESLint, Vertur, Prettier - Code formatter, stylelint-stzhang 這幾個插件

2,settings.json 添加如下配置

 
  "eslint.autoFixOnSave": true, "eslint.validate": [ "JavaScript", "JavaScriptreact", "html", { "language": "vue", "autoFix": true }, { "language": "typescript", "autoFix": true }, { "language": "typescriptreact", "autoFix": true } ], "vetur.format.defaultFormatter.scss": "prettier", "vetur.format.defaultFormatter.css": "prettier", "vetur.format.defaultFormatter.js": "prettier-eslint", "vetur.format.defaultFormatter.html": "js-beautify-html", "stylelint.autoFix": true

 


免責聲明!

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



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