詳解如何在vue項(xiàng)目中使用eslint+prettier格式化代碼
對(duì)于前端代碼風(fēng)格這個(gè)問題一直是經(jīng)久不衰,每個(gè)人都有自己的代碼風(fēng)格,每次看到別人代碼一團(tuán)糟時(shí)候我們都會(huì)吐槽下。今天給大家介紹如何使用eslint+prettier統(tǒng)一代碼風(fēng)格。
對(duì)于eslint大家應(yīng)該比較了解了,是用來(lái)校驗(yàn)代碼規(guī)范的。給大家介紹下prettier,prettier是用來(lái)統(tǒng)一代碼風(fēng)格,格式化代碼的,支持js、ts、css、less、scss、json、jsx。并且集成了vscode、vim、webstorm、sublime text插件。
如果你的項(xiàng)目中采用的是ellint默認(rèn)規(guī)則并且沒有添加別的規(guī)則、沒有使用standard或airbnb得風(fēng)格,你可以下載編輯器插件直接保存代碼時(shí)自動(dòng)格式化。
以vscode為例:搜索插件 Eslint、vuter、prettier-code安裝,在編輯器首選項(xiàng) 配置中修改配置
//由于prettier不能格式化vue文件template 所以使用js-beautify-html格式化 "vetur.format.defaultFormatter.html": "js-beautify-html", "vetur.format.defaultFormatterOptions": { "js-beautify-html": { "wrap_attributes": "force-aligned" //屬性強(qiáng)制折行對(duì)齊 } }, "eslint.autoFixOnSave": true, //保存時(shí)使用自動(dòng)格式化 "eslint.validate": [ //驗(yàn)證文件類型 "javascript", "javascriptreact", "vue", "html", "jsx", { "language": "html", "autoFix": true }, { "language": "vue", "autoFix": true } ], "prettier.singleQuote": true, //使用單引號(hào)而不是雙引號(hào) "prettier.jsxBracketSameLine": true, //將>多行JSX元素放在最后一行的末尾,而不是單獨(dú)放在下一行 "editor.formatOnSave": true, //保存時(shí)自動(dòng)格式化
然后在eslint配置文件.eslintrc extends添加 eslint:recommended
extends: [ 'plugin:vue/essential', 'eslint:recommended' ],
在page.json文件 scripts 中l(wèi)int里面添加--fix 當(dāng)執(zhí)行npm run lint時(shí)eslint會(huì)幫你修復(fù)一些可以自動(dòng)修復(fù)得規(guī)則
"scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "lint": "eslint --fix --ext .js,.vue src", "build": "node build/build.js" },
現(xiàn)在我們就寫完代碼保存時(shí)prettier就會(huì)幫我們格式化代碼,執(zhí)行npm run lint時(shí)eslint會(huì)修復(fù)一些可以修復(fù)的規(guī)則,其余得規(guī)則就需要我們手動(dòng)修復(fù)了
如果你的項(xiàng)目中使用的是standard或airbnd的代碼規(guī)范、或項(xiàng)目中自己添加了一些eslint樣式規(guī)則,那么我們需要安裝一些依賴在項(xiàng)目中幫助格式化代碼
npm i --save-dev prettier eslint-plugin-prettier eslint-config-prettier prettier-eslint-cli
安裝eslint-plugin-prettier 配合eslint使用prettier,安裝eslint-config-prettier禁用一些eslint和prettier沖突的規(guī)則,安裝prettier-eslint-cli 使我們可以敲命令格式化代碼
在.eslintrc.js plugin和extends中添加prettier支持 rules中添加規(guī)則
extends: [ 'plugin:vue/essential', 'eslint:recommended', 'plugin:prettier/recommended' ], // required to lint *.vue files plugins: ['vue', 'prettier'], // add your custom rules here rules: { 'prettier/prettier': 'error', // allow debugger during development 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' }
在page.json script中添加配置 執(zhí)行npm run format就可以格式化代碼了
"scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "lint": "eslint --fix --ext .js,.vue src", "build": "node build/build.js", "format": "prettier-eslint --write \"src/**/*.js\" \"src/**/*.vue\"" },
當(dāng)我們執(zhí)行npm run format時(shí)還會(huì)報(bào)各種奇怪的錯(cuò)誤 如:error: Delete ⏎ (prettier/prettier) at src/pages/xxx 等;這是因?yàn)閜rettier配置和編輯器prettier配置沖突導(dǎo)致的 在rules中配置下覆蓋掉就可以了
"rules": { "no-console": 0, "prettier/prettier": [ "error", { "singleQuote": true, "trailingComma": "none", "bracketSpacing": true, "jsxBracketSameLine": true } ] }
現(xiàn)在我們就可以愉快的編碼了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue-cli項(xiàng)目無(wú)法用本機(jī)IP訪問的解決方法
今天小編就為大家分享一篇vue-cli項(xiàng)目無(wú)法用本機(jī)IP訪問的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09利用vue組件自定義v-model實(shí)現(xiàn)一個(gè)Tab組件方法示例
這篇文章主要給大家介紹了關(guān)于利用vue組件自定義v-model實(shí)現(xiàn)一個(gè)Tab組件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12vue實(shí)現(xiàn)循環(huán)切換動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)循環(huán)切換動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10vue源碼學(xué)習(xí)之Object.defineProperty 對(duì)數(shù)組監(jiān)聽
這篇文章主要介紹了vue源碼學(xué)習(xí)之Object.defineProperty 對(duì)數(shù)組監(jiān)聽,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05ant-design-vue中的table自定義格式渲染解析
這篇文章主要介紹了ant-design-vue中的table自定義格式渲染,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10vue3?實(shí)現(xiàn)關(guān)于?el-table?表格組件的封裝及調(diào)用方法
這篇文章主要介紹了vue3?實(shí)現(xiàn)關(guān)于?el-table?表格組件的封裝及調(diào)用方法,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06