詳解如何在vue項(xiàng)目中使用eslint+prettier格式化代碼
對于前端代碼風(fēng)格這個(gè)問題一直是經(jīng)久不衰,每個(gè)人都有自己的代碼風(fēng)格,每次看到別人代碼一團(tuán)糟時(shí)候我們都會吐槽下。今天給大家介紹如何使用eslint+prettier統(tǒng)一代碼風(fēng)格。
對于eslint大家應(yīng)該比較了解了,是用來校驗(yàn)代碼規(guī)范的。給大家介紹下prettier,prettier是用來統(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í)自動格式化。
以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)制折行對齊
}
},
"eslint.autoFixOnSave": true, //保存時(shí)使用自動格式化
"eslint.validate": [ //驗(yàn)證文件類型
"javascript",
"javascriptreact",
"vue",
"html",
"jsx",
{
"language": "html",
"autoFix": true
},
{
"language": "vue",
"autoFix": true
}
],
"prettier.singleQuote": true, //使用單引號而不是雙引號
"prettier.jsxBracketSameLine": true, //將>多行JSX元素放在最后一行的末尾,而不是單獨(dú)放在下一行
"editor.formatOnSave": true, //保存時(shí)自動格式化
然后在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會幫你修復(fù)一些可以自動修復(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就會幫我們格式化代碼,執(zhí)行npm run lint時(shí)eslint會修復(fù)一些可以修復(fù)的規(guī)則,其余得規(guī)則就需要我們手動修復(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í)還會報(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)在我們就可以愉快的編碼了
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在vue中實(shí)現(xiàn)PDF文件流預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹如何在vue中實(shí)現(xiàn)PDF文件流預(yù)覽功能,文中的實(shí)現(xiàn)步驟講解詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考價(jià)值,需要的可以參考一下2023-12-12
Vue中的無限加載vue-infinite-loading的方法
本篇文章主要介紹了Vue中的無限加載vue-infinite-loading的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04
vue頭部導(dǎo)航動態(tài)點(diǎn)擊處理方法
這篇文章主要介紹了vue頭部導(dǎo)航動態(tài)點(diǎn)擊處理方法,文中通過一段示例代碼給大家介紹了vue實(shí)現(xiàn)動態(tài)頭部的方法,需要的朋友可以參考下2018-11-11
Electron+Vue實(shí)現(xiàn)截屏功能的兩種方式
在Electron環(huán)境下,截屏功能相對強(qiáng)大,可以通過desktopCapturer獲取應(yīng)用視頻流,實(shí)現(xiàn)對整個(gè)應(yīng)用的截屏,而在非Electron環(huán)境下,截屏功能受限,只能截取瀏覽器內(nèi)容,且存在iframe或base64圖片加載問題2024-10-10
vue 判斷兩個(gè)時(shí)間插件結(jié)束時(shí)間必選大于開始時(shí)間的代碼
這篇文章主要介紹了vue 判斷兩個(gè)時(shí)間插件結(jié)束時(shí)間必選大于開始時(shí)間的代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Vue實(shí)現(xiàn)輸入框回車發(fā)送和粘貼文本與圖片功能
這篇文章主要為大家詳細(xì)介紹了Vue如何實(shí)現(xiàn)聊天輸入框回車發(fā)送、粘貼文本(包括HTML)、粘貼圖片等功能,文中的實(shí)現(xiàn)方法講解詳細(xì),需要的可以參考一下2022-05-05
Vue Router之router.push和router.resolve頁面跳轉(zhuǎn)方式
這篇文章主要介紹了Vue Router之router.push和router.resolve頁面跳轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
vue 實(shí)現(xiàn)在函數(shù)中觸發(fā)路由跳轉(zhuǎn)的示例
今天小編就為大家分享一篇vue 實(shí)現(xiàn)在函數(shù)中觸發(fā)路由跳轉(zhuǎn)的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Vue?Router?返回后記住滾動條位置的實(shí)現(xiàn)方法
使用?Vue?router?創(chuàng)建?SPA(Single?Page?App),往往有這種需求:首頁是列表頁,點(diǎn)擊列表項(xiàng)進(jìn)入詳情頁,在詳情頁點(diǎn)擊返回首頁后,希望看到的是,首頁不刷新,并且滾動條停留在之前的位置,這篇文章主要介紹了Vue?Router?返回后記住滾動條位置的實(shí)現(xiàn)方法,需要的朋友可以參考下2023-09-09

