005、Vue3 + Vite + TypeScript + Element-Plus,第一个后台管理项目走向第5步:ESLint+Prettier+Stylelint+EditorConfig 配置

一、前言

通过ESLint 检测 JS/TS 代码、Prettier 格式化代码、Stylelint 检测 CSS/SCSS 代码和配置 EditorConfig 来全方位约束和统一前端代码规范,ESLint 可组装的JavaScript和JSX检查工具,目标是保证代码的一致性和避免错误

本文档大部分参考了【vue3-element-admin】ESLint+Prettier+Stylelint+EditorConfig 约束和统一前端代码规范_stylelint-config-recommended-CSDN博客

 主要是学习过程中记录一下过程

二、ESLint 

安装插件

VSCode 插件市场安装插件

代码安装 ESLint 依赖

pnpm install eslint -D 

 ESLint 配置(.eslintrc.cjs)

执行命令完成 ESLint 配置初始化

npx eslint --init

 ESLint 解析器配置,加上"parser": "vue-eslint-parser",

ESLint 忽略配置(.eslintignore) 

新建 .eslintignore 文件,添加忽略文件, ESLint 校验会忽略这些文件

dist

node_modules

public

.husky

.vscode

.idea

*.sh

*.md

src/assets

.eslintrc.cjs

.prettierrc.cjs

.stylelintrc.cjs

 ESLint 检测指令

package.json scripts 部分添加 eslint 检测指令

  "scripts": {
    "lint:eslint": "eslint \"src/**/*.{vue,ts,js}\" --fix"
  }

ESLint 检测 & 验证 

pnpm run lint:eslint

ESLint 保存自动检测

打开 File → Preferences → Settings 搜索 Editor: Code Actions On Save 选择 Workspace标签设置工作区,点击 Edit in settings.json

{
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true // 开启eslint自动检测
  }
}
 

二、Prettier

Prettier 一个“有态度”的代码格式化工具

安装 Prettier 插件

安装依赖

pnpm install prettier -D 

在根目录创建.prettierrc.cjs文件

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) 

根目录建文件,添加

dist
node_modules
public
.husky
.vscode
.idea
*.sh
*.md

src/assets
 

rettier 格式化指令

package.json 添加 prettier 格式化指令:

  "scripts": {
    "lint:prettier": "prettier --write \"**/*.{js,ts,json,css,less,scss,vue,html,md}\""
  }
 

Prettier 格式化 & 验证

执行命令进行 Prettier 代码格式化:

pnpm run lint:prettier
 

Prettier 保存自动格式化

.vscode 的 settings.json 配置:

{
  "editor.formatOnSave": true, // 保存格式化文件
  "editor.defaultFormatter": "esbenp.prettier-vscode" // 指定 prettier 为所有文件默认格式化器
}
 

三、Stylelint

Stylelint 一个强大的 CSS linter(检查器),可帮助您避免错误并强制执行约定

 安装 Stylelint 插件

安装 Stylelint 依赖 

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 

stylelint    stylelint 核心库

stylelint-config-standard    Stylelint 标准共享配置

stylelint-config-recommended-scss    扩展 stylelint-config-recommended 共享配置并为 SCSS 配置其规则

stylelint-config-recommended-vue    扩展 stylelint-config-recommended 共享配置并为 Vue 配置其规则

stylelint-config-recess-order    提供优化样式顺序的配置    CSS 书写顺序规范

stylelint-config-html    共享 HTML (类似 HTML) 配置,捆绑 postcss-html 并对其进行配置

postcss-html    解析 HTML (类似 HTML) 的 PostCSS 语法

postcss-scss    PostCSS 的 SCSS 解析器

Stylelint 配置(.stylelintrc.cjs)

根目录新建 .stylelintrc.cjs 文件,配置如下:

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"],
      },
    ],
  },
};

Stylelint 忽略配置(.stylelintignore)

根目录创建 .stylelintignore 文件,配置忽略文件如下:

dist
node_modules
public
.husky
.vscode
.idea
*.sh
*.md

src/assets
 

Stylelint 检测指令

package.json 添加 Stylelint 检测指令:

  "scripts": {
      "lint:stylelint": "stylelint  \"**/*.{css,scss,vue,html}\" --fix"
  }
 

Stylelint 检测 & 验证

执行以下命令完成

npm run lint:stylelint
 

StyleLint 保存自动检测

VSCode 的 settings.json 配置内容如下:

{
  "editor.codeActionsOnSave": {
    "source.fixAll.stylelint": true // 开启 Stylelint 保存自动检测
  },
  // Stylelint 校验文件
  "stylelint.validate": ["css", "scss", "vue", "html"]
}
 

EditorConfig 编辑器配置

EditorConfig 主要用于统一不同 IDE 编辑器的编码风格

安装 EditorConfig 插件

VSCode 搜索 EditorConfig for VS Code 插件并安装

配置 EditorConfig

根目录创建 .editorconfig 文件,添加配置如下:

# 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 # 关闭末尾空格修剪

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值