1慎框、vue create 項目名創(chuàng)建項目時選擇自定義創(chuàng)建,會詢問你是否安裝eslint,我選擇了ESLint + Prettier方式室抽;他會默認下載 "eslint","babel-eslint","eslint-plugin-prettier","eslint-plugin-vue","@vue/eslint-config-prettier"等插件
2妒穴、創(chuàng)建項目時你會選擇1種直接在package.json中生成eslint配置即字段eslintConfig里面(個人不喜歡這個方式宋税。你對寫的東西不方便備注),還有一種就是在項目下面創(chuàng)建一個.eslintrc.js文件里面配置你的eslint配置
3讼油、如下是我個人配置的.eslintrc.js:
module.exports = {
// 默認情況下杰赛,ESLint會在所有父級組件中尋找配置文件,一直到根目錄矮台。ESLint一旦發(fā)現(xiàn)配置文件中有 "root": true乏屯,它就會停止在父級目錄中尋找。
root: true,
// 該配置屬性定義來一組預(yù)定義的全局變量瘦赫。這些環(huán)境并不是互斥的辰晕,所以你可以同時定義多個。
env: {
node: true,
},
// extends是擴展插件的意思,用來配置vue.js風格
extends: [
"plugin:vue/essential", // 全稱 eslint-plugin-vue
"@vue/prettier", // 全稱 eslint-plugin-prettier
],
// ESLint 支持使用第三方插件确虱。在使用插件之前含友,你必須使用包管理工具安裝它。
// 在配置文件里配置插件時校辩,可以使用 plugins 關(guān)鍵字來存放插件名字的列表窘问。
// 插件名稱可以省略 eslint-plugin- 前綴。
plugins: ["vue"],
// 額外的全局變量宜咒。我們使用第三方提供的全局變量的時候(例如:jQuery,AMap 等對象)惠赫,
// ESLint 并不能識別他們,總是會報錯荧呐。這個時候汉形,該配置的作用就出現(xiàn)了纸镊。
// 使用 globals 指出你要使用的全局變量。將變量設(shè)置為 true 將允許變量被重寫概疆,或 false 將不允許被重寫逗威。
globals: {
// $: false,
// jquery: false,
// AMap: false
},
// ESLint 的規(guī)則。你可以使用注釋或配置文件修改你項目中要使用的規(guī)則岔冀。
// rules:開啟規(guī)則和發(fā)生錯誤時報告的等級凯旭,規(guī)則的錯誤等級有三種:
// 0 或'off':關(guān)閉規(guī)則。
// 1 或'warn':打開規(guī)則使套,并且作為一個警告(并不會導致檢查不通過)罐呼。
// 2 或'error':打開規(guī)則,并且作為一個錯誤(退出碼為1侦高,檢查不通過)
rules: {
// allow debugger during development
"no-console": process.env.NODE_ENV === "production" ? "error" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "error" : "off",
"prettier/prettier": [
"error",
{
semi: false, // 是否使用分號, 默認true
singleQuote: true, // 使用單引號, 默認false(在jsx中配置無效, 默認都是雙引號)
},
],
},
parserOptions: {
parser: "babel-eslint",
},
};
4嫉柴、vscode需要安裝幾個格式化插件:Beautify,ESLint奉呛,Vetur计螺,Prettier - Code formatter,然后點擊文件=>首選項=>設(shè)置會有用戶設(shè)置和工作區(qū)設(shè)置建議保存在工作區(qū)設(shè)置以便大家共享
5瞧壮、工作區(qū)設(shè)置后會在項目下生成一個.vscode文件夾下面有setting.json以下是我的配置:
{
// 把eslint保存在工作區(qū)登馒,方便大家共享
// 配置eslint
"vetur.validation.template": false,
// vscode默認啟用了根據(jù)文件類型自動設(shè)置tabsize的選項
"editor.detectIndentation": false,
//關(guān)閉Vetur的linting功能
// "vetur.validation.template": false,
// 重新設(shè)定tabsize
"editor.tabSize": 2,//制表符符號eslint
// #讓函數(shù)(名)和后面的括號之間加個空格
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
// #這個按用戶自身習慣選擇
"vetur.format.defaultFormatter.html": "js-beautify-html",//格式化.vue中html
"vetur.format.defaultFormatter.ts": "none",
// #讓vue中的js按編輯器自帶的ts格式進行格式化
"vetur.format.defaultFormatter.js": "vscode-typescript",
"vetur.format.defaultFormatterOptions": {
"js-beautify-html": {
"wrap_attributes": "auto", //屬性強制折行對齊
"end_with_newline": false,
},
"prettier": {
"semi": false, // #去掉代碼結(jié)尾的分號
"singleQuote": true // #使用帶引號替代雙引號
}
},
// 每次保存的時候自動格式化(建議關(guān)掉,用eslint來修復(fù))
"editor.formatOnSave": false,
//舊版本配置
// 每次保存的時候?qū)⒋a按eslint格式進行修復(fù)
// "eslint.autoFixOnSave": true,
// 添加 vue 支持
"eslint.validate": [
"javascript",
"javascriptreact",
"html",
"vue",
],
"eslint.options": {
"extensions": [
".js",
".vue"
]
},
//新版本配置
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "HookyQR.beautify"
},
"[html]": {
"editor.defaultFormatter": "vscode.html-language-features"
},
// "vetur.format.options.tabSize": 2,
// 文件頭部注釋
"fileheader.customMade": {
"Descripttion": "",
"version": "",
"Author": "Mr.fang",
"Date": "Do not edit",
"LastEditors": "Mr.fang",
"LastEditTime": "Do not Edit"
}, //函數(shù)注釋
"fileheader.cursorMode": {
"name": "",
"test": "test font",
"msg": "",
"param": "",
"return": ""
},
}
----------以上都是我的配置咆槽,有問題的歡迎來問我-----------