eslint
安装
配置文件
.eslintrc.cjs
.eslintrc.cjs 文件下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| require("@rushstack/eslint-patch/modern-module-resolution");
module.exports = { root: true, env: { node: true, }, extends: [ "plugin:vue/vue3-essential", "eslint:recommended", "@vue/eslint-config-typescript", "@vue/eslint-config-prettier/skip-formatting", ], parserOptions: { ecmaVersion: "latest", }, rules: { "vue/multi-word-component-names": "off", "vue/comment-directive": "off", }, };
|
.eslintignore
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| dist node_modules public .husky .vscode .idea *.sh *.md
src/assets
.eslintrc.cjs .prettierrc.cjs .stylelintrc.cjs
|
npm 脚本命令
1
| "lint:eslint": "eslint \"src/**/*.{vue,ts,js}\" \"index.html\" --fix",
|
prettier
安装
配置
.prettierrc.cjs
.prettierrc.cjs 文件下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| module.exports = { // (x)=>{},单个参数箭头函数是否显示小括号。(always:始终显示;avoid:省略括号。默认:always) arrowParens: "always", // 开始标签的右尖括号是否跟随在最后一行属性末尾,默认false bracketSameLine: false, // 对象字面量的括号之间打印空格 (true - Example: { foo: bar } ; false - Example: {foo:bar}) bracketSpacing: true, // 是否格式化一些文件中被嵌入的代码片段的风格(auto|off;默认auto) embeddedLanguageFormatting: "auto", // 指定 HTML 文件的空格敏感度 (css|strict|ignore;默认css) htmlWhitespaceSensitivity: "css", // 当文件已经被 Prettier 格式化之后,是否会在文件顶部插入一个特殊的 @format 标记,默认false insertPragma: false, // 在 JSX 中使用单引号替代双引号,默认false jsxSingleQuote: false, // 每行最多字符数量,超出换行(默认80) printWidth: 120, // 超出打印宽度 (always | never | preserve ) proseWrap: "preserve", // 对象属性是否使用引号(as-needed | consistent | preserve;默认as-needed:对象的属性需要加引号才添加;) quoteProps: "as-needed", // 是否只格式化在文件顶部包含特定注释(@prettier| @format)的文件,默认false requirePragma: false, // 结尾添加分号 semi: true, // 使用单引号 (true:单引号;false:双引号) singleQuote: false, // 缩进空格数,默认2个空格 tabWidth: 2, // 元素末尾是否加逗号,默认es5: ES5中的 objects, arrays 等会添加逗号,TypeScript 中的 type 后不加逗号 trailingComma: "es5", // 指定缩进方式,空格或tab,默认false,即使用空格 useTabs: false, // vue 文件中是否缩进 <style> 和 <script> 标签,默认 false vueIndentScriptAndStyle: false, };
|
.prettierignore
1 2 3 4 5 6 7 8 9 10 11
| dist node_modules public .husky .vscode .idea *.sh *.md
src/assets
|
npm 格式化命令
1
| "lint:prettier": "prettier --write \"**/*.{js,ts,json,css,less,scss,vue,html,md}\"",
|
stylelint
安装
1
| pnpm install -D stylelint stylelint-config-standard stylelint-config-recommended-scss stylelint-config-recommended-vue postcss postcss-html postcss-scss stylelint-config-recess-order stylelint-config-html
|
配置文件
.stylelintrc.cjs
.stylelintrc.cjs 文件下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| module.exports = { // 继承推荐规范配置 extends: [ "stylelint-config-standard", "stylelint-config-recommended-scss", "stylelint-config-recommended-vue/scss", "stylelint-config-html/vue", "stylelint-config-recess-order", ], // 指定不同文件对应的解析器 overrides: [ { files: ["**/*.{vue,html}"], customSyntax: "postcss-html", }, { files: ["**/*.{css,scss}"], customSyntax: "postcss-scss", }, ], // 自定义规则 rules: { // 允许 global 、export 、v-deep等伪类 "selector-pseudo-class-no-unknown": [ true, { ignorePseudoClasses: ["global", "export", "v-deep", "deep"], }, ], "no-empty-source": null, }, };
|
.stylelintignore
1 2 3 4 5 6 7 8 9 10 11
| dist node_modules public .husky .vscode .idea *.sh *.md
src/assets
|
npm 格式化命令
1
| "lint:stylelint": "stylelint \"**/*.{css,scss,vue,html}\" --fix",
|
EditorConfig 编辑器
EditorConfig 主要用于统一不同 IDE 编辑器的编码风格。
配置文件
.editorconfig 文件下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # http://editorconfig.org root = true
# 表示所有文件适用 [*] charset = utf-8 # 设置文件字符集为 utf-8 end_of_line = lf # 控制换行类型(lf | cr | crlf) indent_style = tab # 缩进风格(tab | space) insert_final_newline = true # 始终在文件末尾插入一个新行
# 表示仅 md 文件适用以下规则 [*.md] max_line_length = off # 关闭最大行长度限制 trim_trailing_whitespace = false # 关闭末尾空格修剪
|
参考文献
【vue3-element-admin】ESLint+Prettier+Stylelint+EditorConfig 约束和统一前端代码规范