<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
為了儘量統一專案成員的程式碼風格,降低開發者對程式碼的理解成本,所以我們需要為專案統一程式碼格式規範;同時我們不能為了降低理解成本,去增加開發成本,所以我們藉助VS Code的相關外掛去完成程式碼格式化的功能。
使用vue-cli構建的專案,在專案構建時,就會讓你選擇格式化方案,如果是已有專案執行vue add eslint新增格式化方式,建議選擇Prettier 的格式化方案;如果是uniapp的專案,如果使用的是vue-cli,也是使用vue add eslint,如果是使用HBuilder構建打包,需要安裝另外安裝@vue/cli-service,不然npm run lint無法正常格式化。
新增eslint之後,根據你的選擇,eslint的設定項,可能在.eslintrc.js檔案中,如果該檔案不存在,設定項應該在package.json,預設設定應該如下:
module.exports = { root: true, env: { node: true, }, extends: [ "plugin:vue/essential", "eslint:recommended", "plugin:prettier/recommended", ], parserOptions: { parser: "@babel/eslint-parser", } };
這些設定不建議改動,如果有其他需求,我們可以在其基礎上進行自定義設定。
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的一些程式碼規範,如元件屬性的順序,vue選項的順序等。
rules中的no-console和no-debugger限制了程式碼中的console和debugger,在開發環境會生成警告資訊,在生產環境會提示報錯;no-unused-vars對為使用的變數做了限制,除了引數和reset中不允許出現未使用的變數;vue/order-in-components是在uniapp中對plugin:vue/recommended規範的一個補充,uniapp中存在許多vue沒有的選項,設定vue/order-in-components將這些沒有的選項也進行格式化排序。
globals中新增使用到的全域性變數,如果不新增會在格式化時報錯。uni是uniapp常用的全域性物件,requirePlugin是微信開發用的的全域性變數。
pre-commit在git commit之前做一些處理,我們需要在提交之前對程式碼格式規範做檢查,避免在專案打包時,出現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" ] }
我們需要用的eslint和vetur這兩個外掛,eslint外掛需要npm全域性安裝eslint包,兩個外掛安裝完之後,在VS Code的設定中,設定:
"[vue]": { "editor.defaultFormatter": "octref.vetur" }
如果無法格式化,可能是格式化工具衝突導致的,設定:
// 儲存時使用VSCode 自身格式化程式格式化 "editor.formatOnSave": true, // 儲存時用eslint格式化 "editor.codeActionsOnSave": { "source.fixAll.eslint": true } // 兩者會在格式化js時衝突,所以需要關閉預設js格式化程式 "javascript.format.enable": false
到此這篇關於vue專案程式碼格式規範設定的文章就介紹到這了,更多相關vue3封裝input元件內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45