二、项目中集成ESLint、Prettier和stylelint

339 阅读3分钟

接上文: 一、手动搭建Vue3项目

创建完项目自然就是要开始进行开发了,然而一个大型的系统,势必会有以下痛点:

  • 不同开发人员的代码风格冲突;
  • 不同的代码风格会造成提交冲突;
  • 阅读和修改他人代码难度增加;

所以我们需要在项目中进行规范,让每个开发人员提交到仓库的代码拥有统一的代码风格。

项目地址:github

ESLint

安装依赖:

#开发依赖:esLint相关 eslint主体 eslint配置文件初始化工具
pnpm install -D eslint @eslint/create-config

1. VSCode安装ESLint插件

01.png

2.生成esLint配置文件

npx eslint --init

命令行会出现配置选项(蓝色是我们需要选择的配置):

1、用ESLint做啥:

image-20240202103113295.png

2、项目中使用的模块化方式

02.png

3、项目使用的框架

03.png

4、项目中是否使用了TS

04.png

5、项目代码运行环境

05.png

6、生成配置文件的后缀名

06.png

7、项目缺少一些依赖,是否安装及安装方式选择

07.png

以上步骤完成后,项目根目录下会生成一个.eslintrc.js文件,里面会有默认配置,但是这些配置还无法满足我们的要求,将其重写(见项目仓库)。

手动新建.eslintignore(不需要eslint校验的文件列表):

node_modules
*.md
.vscode
.idea
dist
/public
/docs
.husky
.local
/bin
Dockerfile
.eslintrc.js

3.其它配置

打开工作区配置,在根目录下生成 .vscode -> setting.json文件

08.png

09.png

在生成的settings.json文件里添加:

// 保存代码时,自动格式化
{
  "editor.codeActionsOnSave": {
    "source.fixAll": true
  }
}

接下来,在package.json的脚本配置(scripts)选项中,添加代码:

"lint:eslint": "eslint --cache --max-warnings 0 {src, mock}/**/*.{vue,ts,tsx} --fix"
​
// --cache 没有改动的代码不进行校验
// --max-warnings 0 如果校验警告超过0个,则强制以错误状态输出
// {src, mock}/**/*.{vue,ts,tsx} 需要校验耳朵目录

Prettier

1.VSCode安装Prettier插件

10.png

2. 相关依赖安装

#开发依赖: prettier主体 
pnpm install -D prettier

3.根目录下手动创建.prettierrc.js和.prettierignore文件,并添加相关配置

.prettierrc.js:

module.exports = {
  printWidth: 120, //单行长度
  tabWidth: 4, //缩进长度
  useTabs: true, //使用空格代替tab缩进
  semi: true, //句末使用分号
  singleQuote: true, //使用单引号
  endOfLine: "auto",
  trailingComma: "none", // 对象最后一个属性末尾是否要逗号
};

.prettierignore(忽略文件):

/dist/*
/node_modules/**

接下来,在package.json的脚本配置(scripts)选项中,添加代码:

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

4.解决ESLint和Prettier的冲突问题

#开发依赖 关闭eslint中与pretiier冲突的配置项  在eslint中以prettier的配置进行格式化代码
pnpm install -D eslint-config-prettier eslint-plugin-prettier

接下来,在.eslintrc.js的extends配置项中,添加:

"plugin:prettier/recommended", //以prettier的风格对代码进行格式化

执行一次配置的脚本:

npm run lint:prettier

Stylelint

Stylelint 是一个强大、先进的 CSS 代码检查器(linter),可以帮助你规避 CSS 代码中的错误并保持一致的编码风格。

#开发依赖: stylelint主体  stylelint标准配置
pnpm install -D stylelint stylelint-config-standard
​
#开发依赖: 关闭stylelint中与prettier冲突的配置 解析html文件 css样式排序 less文件的校验 支持检查less与html StyleLint Vue项目推荐配置
pnpm install -D stylelint-config-prettier stylelint-config-html stylelint-order stylelint-less postcss-html postcss-less stylelint-config-standard-vue

1. 创建.stylelintrc.js(配置文件)和.stylelingignore(忽略文件)

配置项太多就不放上来了,可以直接去仓库拿。

至此,我们在代码风格一致性的配置就大功告成了,那么怎么让插件自行检查代码呢?

下一期:集成husky、LintStaged、CommitLint。