# Eslint + Pettier 统一开发规范 VScode (版本 1.47.3)安装 `eslint` `prettier` `vetur` 插件 `.vue` 文件使用 vetur 进行格式化,其他使用`prettier`,后面会专门写个如何使用配合使用这三个玩意儿 在文件 `.prettierrc` 里写 属于你的 pettier 规则 ```bash { "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 设置 ```bash { // 将设置放入此文件中以覆盖默认设置 "files.autoSave": "off", // 控制字体系列。 "editor.fontFamily": "Consolas, 'Courier New', monospace,'宋体'", "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe", // 以像素为单位控制字号。 "editor.fontSize": 16, // 控制选取范围是否有圆角 "editor.roundedSelection": false, // 建议小组件的字号 "editor.suggestFontSize": 16, // 在“打开的编辑器”窗格中显示的编辑器数量。将其设置为 0 可隐藏窗格。 "explorer.openEditors.visible": 0, // 是否已启用自动刷新 "git.autorefresh": true, // 以像素为单位控制终端的字号,这是 editor.fontSize 的默认值。 "terminal.integrated.fontSize": 14, // 控制终端游标是否闪烁。 "terminal.integrated.cursorBlinking": true, // 一个制表符等于的空格数。该设置在 `editor.detectIndentation` 启用时根据文件内容进行重写。 // 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" }, // 为指定的语法定义配置文件或使用带有特定规则的配置文件。 "emmet.syntaxProfiles": { "vue-html": "html", "vue": "html" }, "search.exclude": { "**/node_modules": true, "**/bower_components": true }, //保存时eslint自动修复错误 "editor.formatOnSave": true, // Enable per-language //配置 ESLint 检查的文件类型 "editor.quickSuggestions": { "strings": true }, // 添加 vue 支持 // 这里是针对vue文件的格式化设置,vue的规则在这里生效 "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", // 超过150折行 "wrap-line-length": 150 }, // #vue组件中html代码格式化样式 "prettier": { "printWidth": 120, "tabWidth": 2, "singleQuote": false, "trailingComma": "none", "semi": false, "wrap_line_length": 120, "wrap_attributes": "aligned-multiple", // 超过150折行 "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" }, // 开启eslint自动修复js/ts功能 "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "minapp-vscode.disableAutoConfig": true, "javascript.implicitProjectConfig.experimentalDecorators": true, "editor.maxTokenizationLineLength": 200000 } ```