npm install vue-cli -g
複製代碼
npm install @vue/cli -g
複製代碼
vue init webpack studyEslint
複製代碼
腳手架生成的有三個eslint的配置文件javascript
此文件的做用是爲了防止團隊協做時你們所用ide不一樣致使代碼規範不一樣每次合併代碼時帶來大量的並無變化的代碼合併和沒必要要的衝突。 安裝插件(webstorm 跳過) 此處以 VS Code 爲例html
去商店中搜索 EditorConfig for VS Code 進行安裝,這樣 VS Code 就會優先根據項目根目錄的.editorconfig 文件對縮進之類風格進行配置,覆蓋 VS Code 默認配置。vue
EditorConfig 插件會從文件所在目錄開始逐級向上查找 .editorconfig,直到到達根目錄或者找到包含屬性 root=true 的 .editorconfig 文件爲止。java
當找到全部知足條件的 .editorconfig 配置文件後,插件會讀取這些配置文件的內容,距離文件路徑最短的配置文件中的屬性優先級最高,同一個文件按照從上到下方式讀取,底部定義的同名屬性優先級要高於頂部定義的。node
大部分編輯器都有這個插件,即便團隊成員使用不一樣的 IDE,也能夠很好的統一代碼風格。react
只要保證.editorconfig 這個文件一直便可linux
root = true // 表示當前是項目根目錄
[*] // 全部文件都使用配置
charset = utf-8 // 編碼格式
indent_style = space // Tab鍵縮進的樣式,由space和table兩種 通常代碼中是space
indent_size = 2 // 縮進size爲2
end_of_line = lf // 以lf換行 默認win爲crlf mac和linux爲lf
insert_final_newline = true // 末尾加一行空行
trim_trailing_whitespace = true // 去掉行尾多餘空格
複製代碼
此文件是eslint忽略文件配置,配置到此文件的文件文件夾都會被eslint的檢測規則忽略webpack
/build/
/config/
/dist/
/*.js
/test/unit/coverage/
複製代碼
下面是vue模版的默認配置git
// https://eslint.org/docs/user-guide/configuring
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint'
},
env: {
browser: true,
},
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
extends: ['plugin:vue/essential', 'airbnb-base'],
// required to lint *.vue files
plugins: [
'vue'
],
// check if imports actually resolve
settings: {
'import/resolver': {
webpack: {
config: 'build/webpack.base.conf.js'
}
}
},
// add your custom rules here
rules: {
// don't require .vue extension when importing 'import/extensions': ['error', 'always', { js: 'never', vue: 'never' }], // disallow reassignment of function parameters // disallow parameter object manipulation except for specific exclusions 'no-param-reassign': ['error', { props: true, ignorePropertyModificationsFor: [ 'state', // for vuex state 'acc', // for reduce accumulators 'e' // for e.returnvalue ] }], // allow optionalDependencies 'import/no-extraneous-dependencies': ['error', { optionalDependencies: ['test/unit/index.js'] }], // allow debugger during development 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' } } 複製代碼
此內容中需重點關注env
,這裏能夠配置開發環境內容,例如:github
env: {
browse: true,
node: true
}
複製代碼
plugin是配置咱們須要用到的一些插件, 還有一個對象是globals,用來配置全局變量是否可變同時也有聲明的做用(親測):
globals:{
ping: true,
var1: false
}
複製代碼
這樣就解決了引用第三方庫而後使用裏面的方法沒有聲明報錯的問題,true是代碼此全局變量能夠修改,false表明不可修改。
最後是rules,這裏配置了你的個性化規則,你可能以爲有些規範太嚴格或者不太須要那能夠在這裏修改校驗規則,報錯等級或者直接關掉。 ESLint 附帶有大量的規則。你可使用註釋或配置文件修改你項目中要使用的規則。要改變一個規則設置,你必須將規則 ID 設置爲下列值之一:
這是全局的設置辦法,也能夠在文件中用註釋的辦法:
/*eslint getter-return: "error"*/
複製代碼
這樣就能修改此文件中的這個校驗規則。
此處以vscode爲例,安裝eslint的插件,修改vscode的配置文件
"eslint.enable": true,
"eslint.autoFixOnSave": true,
"eslint.validate": [
"javascript",
"javascriptreact",
{
"language": "html",
"autoFix": true
},
{
"language": "vue",
"autoFix": true
}
],
"editor.wordWrap": "wordWrapColumn",
"editor.formatOnSave": true,
複製代碼
裏面配置了一個80字符長度自動換行的規則。
能夠配合prettier插件一塊兒使用,vscode配置文件能夠配置
"prettier.eslintIntegration": true,
複製代碼
⚠️我的不建議將prettier的校驗規則配置到eslint和airbnb或者standard的規則一塊兒使用,這樣有衝突!有衝突!有衝突!prettier聽從的是google的規範。
如需瞭解更多的eslint的知識請訪問 eslint中文