vue項目代碼格式規(guī)范設(shè)置參考指南
前言
為了盡量統(tǒng)一項目成員的代碼風(fēng)格,降低開發(fā)者對代碼的理解成本,所以我們需要為項目統(tǒng)一代碼格式規(guī)范;同時我們不能為了降低理解成本,去增加開發(fā)成本,所以我們借助VS Code的相關(guān)插件去完成代碼格式化的功能。
為項目添加eslint
使用vue-cli構(gòu)建的項目,在項目構(gòu)建時,就會讓你選擇格式化方案,如果是已有項目運行vue add eslint添加格式化方式,建議選擇Prettier 的格式化方案;如果是uniapp的項目,如果使用的是vue-cli,也是使用vue add eslint,如果是使用HBuilder構(gòu)建打包,需要安裝另外安裝@vue/cli-service,不然npm run lint無法正常格式化。
添加eslint之后,根據(jù)你的選擇,eslint的配置項,可能在.eslintrc.js文件中,如果該文件不存在,配置項應(yīng)該在package.json,默認(rèn)配置應(yīng)該如下:
module.exports = {
root: true,
env: {
node: true,
},
extends: [
"plugin:vue/essential",
"eslint:recommended",
"plugin:prettier/recommended",
],
parserOptions: {
parser: "@babel/eslint-parser",
}
};這些配置不建議改動,如果有其他需求,我們可以在其基礎(chǔ)上進(jìn)行自定義配置。
自定義eslint配置
module.exports = {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/essential",
"plugin:vue/recommended",
"eslint:recommended",
"@vue/prettier"
],
"parserOptions": {
"parser": "babel-eslint"
},
rules: {
"no-console": process.env.NODE_ENV === "production" ? "error" : "warn",
"no-debugger": process.env.NODE_ENV === "production" ? "error" : "warn",
"no-unused-vars": [
"error",
{ vars: "all", args: "none", ignoreRestSiblings: true },
],
"vue/order-in-components": ["error", {
"order": [
"el",
"name",
"key",
"parent",
"functional",
["delimiters", "comments"],
["components", "directives", "filters"],
"extends",
"mixins",
["provide", "inject"],
"ROUTER_GUARDS",
"layout",
"middleware",
"validate",
"scrollToTop",
"transition",
"loading",
"inheritAttrs",
"model",
["props", "propsData"],
"emits",
"setup",
"asyncData",
"data",
"fetch",
"head",
"computed",
"watch",
"watchQuery",
"LIFECYCLE_HOOKS",
"onLoad",
"onShow",
"onReady",
"onHide",
"onUnload",
"onResize",
"onPullDownRefresh",
"onReachBottom",
"onTabItemTap",
"onShareAppMessage",
"onPageScroll",
"methods",
["template", "render"],
"renderError"
]
}]
},
globals: {
uni: true,
requirePlugin: true
},
}推薦的eslint配置如上。
extends中添加了plugin:vue/recommended,這個插件是限制了vue的一些代碼規(guī)范,如組件屬性的順序,vue選項的順序等。
rules中的no-console和no-debugger限制了代碼中的console和debugger,在開發(fā)環(huán)境會生成警告信息,在生產(chǎn)環(huán)境會提示報錯;no-unused-vars對為使用的變量做了限制,除了參數(shù)和reset中不允許出現(xiàn)未使用的變量;vue/order-in-components是在uniapp中對plugin:vue/recommended規(guī)范的一個補充,uniapp中存在許多vue沒有的選項,設(shè)置vue/order-in-components將這些沒有的選項也進(jìn)行格式化排序。
globals中添加使用到的全局變量,如果不添加會在格式化時報錯。uni是uniapp常用的全局對象,requirePlugin是微信開發(fā)用的的全局變量。
pre-commit設(shè)置
pre-commit在git commit之前做一些處理,我們需要在提交之前對代碼格式規(guī)范做檢查,避免在項目打包時,出現(xiàn)eslint的報錯。在項目添加lint-staged,然后再package.json中配置(我們使用vue命令添加eslint時,選擇commit時格式化,會自動幫我們添加):
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.{js,jsx,vue}": [
"vue-cli-service lint --mode production",
"git add"
]
}VS Code配置
我們需要用的eslint和vetur這兩個插件,eslint插件需要npm全局安裝eslint包,兩個插件安裝完之后,在VS Code的配置中,設(shè)置:
"[vue]": {
"editor.defaultFormatter": "octref.vetur"
}如果無法格式化,可能是格式化工具沖突導(dǎo)致的,設(shè)置:
// 保存時使用VSCode 自身格式化程序格式化
"editor.formatOnSave": true,
// 保存時用eslint格式化
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
}
// 兩者會在格式化js時沖突,所以需要關(guān)閉默認(rèn)js格式化程序
"javascript.format.enable": false參考
總結(jié)
到此這篇關(guān)于vue項目代碼格式規(guī)范設(shè)置的文章就介紹到這了,更多相關(guān)vue3封裝input組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue與.net?Core?接收List<T>泛型參數(shù)
這篇文章主要介紹了Vue與.net?Core?接收List<T>泛型參數(shù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-04-04
vue3+Element采用遞歸調(diào)用封裝導(dǎo)航欄實現(xiàn)
本文主要介紹了vue3+Element采用遞歸調(diào)用封裝導(dǎo)航欄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
一文詳細(xì)了解Vue?3.0中的onMounted和onUnmounted鉤子函數(shù)
Vue3.0引入了新的組件生命周期鉤子函數(shù)onMounted和onUnmounted,分別用于組件掛載后和卸載前的操作,這些鉤子函數(shù)為開發(fā)者提供了更多靈活性,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
vue+canvas如何實現(xiàn)根據(jù)數(shù)據(jù)展示不同高度,不同漸變顏色的長方體效果
這篇文章主要介紹了vue+canvas如何實現(xiàn)根據(jù)數(shù)據(jù)展示不同高度,不同漸變顏色的長方體效果,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-09-09
vue短信驗證性能優(yōu)化如何寫入localstorage中
這篇文章主要介紹了vue短信驗證性能優(yōu)化寫入localstorage中的方法,解決這個問題需要把時間都寫到localstorage里面去,具體解決方法大家參考下本文2018-04-04

