import{_ as s,o as n,c as a,d as o}from"./app.b03f2eea.js";const u=JSON.parse('{"title":"Eslint + Pettier \u7EDF\u4E00\u5F00\u53D1\u89C4\u8303","description":"","frontmatter":{},"headers":[],"relativePath":"guide/vue2/lint.md","lastUpdated":1661959619000}'),l={name:"guide/vue2/lint.md"},p=o(`
VScode \uFF08\u7248\u672C 1.47.3\uFF09\u5B89\u88C5 eslint
prettier
vetur
\u63D2\u4EF6 .vue
\u6587\u4EF6\u4F7F\u7528 vetur \u8FDB\u884C\u683C\u5F0F\u5316\uFF0C\u5176\u4ED6\u4F7F\u7528prettier
,\u540E\u9762\u4F1A \u4E13\u95E8\u5199\u4E2A\u5982\u4F55\u4F7F\u7528\u914D\u5408\u4F7F\u7528\u8FD9\u4E09\u4E2A\u73A9\u610F
\u5728\u6587\u4EF6 .prettierrc
\u91CC\u5199 \u5C5E\u4E8E\u4F60\u7684 pettier \u89C4\u5219
{
"printWidth": 120,
"tabWidth": 2,
"singleQuote": true,
"trailingComma": "none",
"semi": false,
"wrap_line_length": 120,
"wrap_attributes": "auto",
"proseWrap": "always",
"arrowParens": "avoid",
"bracketSpacing": false,
"jsxBracketSameLine": true,
"useTabs": false,
"overrides": [{
"files": ".prettierrc",
"options": {
"parser": "json"
}
}]
}
Vscode setting.json \u8BBE\u7F6E
{
// \u5C06\u8BBE\u7F6E\u653E\u5165\u6B64\u6587\u4EF6\u4E2D\u4EE5\u8986\u76D6\u9ED8\u8BA4\u8BBE\u7F6E
"files.autoSave": "off",
// \u63A7\u5236\u5B57\u4F53\u7CFB\u5217\u3002
"editor.fontFamily": "Consolas, 'Courier New', monospace,'\u5B8B\u4F53'",
"terminal.integrated.shell.windows": "C:\\\\Program Files\\\\Git\\\\bin\\\\bash.exe",
// \u4EE5\u50CF\u7D20\u4E3A\u5355\u4F4D\u63A7\u5236\u5B57\u53F7\u3002
"editor.fontSize": 16,
// \u63A7\u5236\u9009\u53D6\u8303\u56F4\u662F\u5426\u6709\u5706\u89D2
"editor.roundedSelection": false,
// \u5EFA\u8BAE\u5C0F\u7EC4\u4EF6\u7684\u5B57\u53F7
"editor.suggestFontSize": 16,
// \u5728\u201C\u6253\u5F00\u7684\u7F16\u8F91\u5668\u201D\u7A97\u683C\u4E2D\u663E\u793A\u7684\u7F16\u8F91\u5668\u6570\u91CF\u3002\u5C06\u5176\u8BBE\u7F6E\u4E3A 0 \u53EF\u9690\u85CF\u7A97\u683C\u3002
"explorer.openEditors.visible": 0,
// \u662F\u5426\u5DF2\u542F\u7528\u81EA\u52A8\u5237\u65B0
"git.autorefresh": true,
// \u4EE5\u50CF\u7D20\u4E3A\u5355\u4F4D\u63A7\u5236\u7EC8\u7AEF\u7684\u5B57\u53F7\uFF0C\u8FD9\u662F editor.fontSize \u7684\u9ED8\u8BA4\u503C\u3002
"terminal.integrated.fontSize": 14,
// \u63A7\u5236\u7EC8\u7AEF\u6E38\u6807\u662F\u5426\u95EA\u70C1\u3002
"terminal.integrated.cursorBlinking": true,
// \u4E00\u4E2A\u5236\u8868\u7B26\u7B49\u4E8E\u7684\u7A7A\u683C\u6570\u3002\u8BE5\u8BBE\u7F6E\u5728 \`editor.detectIndentation\` \u542F\u7528\u65F6\u6839\u636E\u6587\u4EF6\u5185\u5BB9\u8FDB\u884C\u91CD\u5199\u3002
// Tab Size
"editor.tabSize": 2,
// By default, common template. Do not modify it!!!!!
"editor.formatOnType": true,
"window.zoomLevel": 0,
"editor.detectIndentation": false,
"css.fileExtensions": ["css", "scss"],
"files.associations": {
"*.string": "html",
"*.vue": "vue",
"*.wxss": "css",
"*.wxml": "wxml",
"*.wxs": "javascript",
"*.cjson": "jsonc",
"*.js": "javascript"
},
// \u4E3A\u6307\u5B9A\u7684\u8BED\u6CD5\u5B9A\u4E49\u914D\u7F6E\u6587\u4EF6\u6216\u4F7F\u7528\u5E26\u6709\u7279\u5B9A\u89C4\u5219\u7684\u914D\u7F6E\u6587\u4EF6\u3002
"emmet.syntaxProfiles": {
"vue-html": "html",
"vue": "html"
},
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true
},
//\u4FDD\u5B58\u65F6eslint\u81EA\u52A8\u4FEE\u590D\u9519\u8BEF
"editor.formatOnSave": true,
// Enable per-language
//\u914D\u7F6E ESLint \u68C0\u67E5\u7684\u6587\u4EF6\u7C7B\u578B
"editor.quickSuggestions": {
"strings": true
},
// \u6DFB\u52A0 vue \u652F\u6301
// \u8FD9\u91CC\u662F\u9488\u5BF9vue\u6587\u4EF6\u7684\u683C\u5F0F\u5316\u8BBE\u7F6E\uFF0Cvue\u7684\u89C4\u5219\u5728\u8FD9\u91CC\u751F\u6548
"vetur.format.options.tabSize": 2,
"vetur.format.options.useTabs": false,
"vetur.format.defaultFormatter.html": "js-beautify-html",
"vetur.format.defaultFormatter.css": "prettier",
"vetur.format.defaultFormatter.scss": "prettier",
"vetur.format.defaultFormatter.postcss": "prettier",
"vetur.format.defaultFormatter.less": "prettier",
"vetur.format.defaultFormatter.js": "vscode-typescript",
"vetur.format.defaultFormatter.sass": "sass-formatter",
"vetur.format.defaultFormatter.ts": "prettier",
"vetur.format.defaultFormatterOptions": {
"js-beautify-html": {
"wrap_attributes": "aligned-multiple", // \u8D85\u8FC7150\u6298\u884C
"wrap-line-length": 150
},
// #vue\u7EC4\u4EF6\u4E2Dhtml\u4EE3\u7801\u683C\u5F0F\u5316\u6837\u5F0F
"prettier": {
"printWidth": 120,
"tabWidth": 2,
"singleQuote": false,
"trailingComma": "none",
"semi": false,
"wrap_line_length": 120,
"wrap_attributes": "aligned-multiple", // \u8D85\u8FC7150\u6298\u884C
"proseWrap": "always",
"arrowParens": "avoid",
"bracketSpacing": true,
"jsxBracketSameLine": true,
"useTabs": false,
"overrides": [
{
"files": ".prettierrc",
"options": {
"parser": "json"
}
}
]
}
},
// Enable per-language
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"vetur.validation.template": false,
"html.format.enable": false,
"json.format.enable": false,
"javascript.format.enable": false,
"typescript.format.enable": false,
"javascript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[vue]": {
"editor.defaultFormatter": "octref.vetur"
},
"emmet.includeLanguages": {
"wxml": "html"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
// \u5F00\u542Feslint\u81EA\u52A8\u4FEE\u590Djs/ts\u529F\u80FD
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"minapp-vscode.disableAutoConfig": true,
"javascript.implicitProjectConfig.experimentalDecorators": true,
"editor.maxTokenizationLineLength": 200000
}