Eslint,StyleLint,CommitLint,Prettier安装与配置

本文最后更新于:2023年2月6日 下午

Eslint

安装

vscode安装eslint插件

1
pnpm i eslint vite-plugin-eslint -D

配置文件

使用下三个指令之一即可初始化Eslint配置

1
2
3
eslint --init                  # 已全局安装
npm init @eslint/config
pnpm create @eslint/config

使用命令会提示做出选项自动生成对应的配置文件,打开文件发现有错误'module' is not defined

在文件中的env添加node: true即可解决

eslintrc.js.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
module.export = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
],
overrides: [],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
plugins: ["react", "@typescript-eslint"],
rules: {},
};

vite-plugin-eslint可以在开发时提示问题

vite.config.ts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// ...
import eslintPlugin from 'vite-plugin-eslint'

export default defineConfig({
// ...
plugins: [
// ...
eslintPlugin({
include: ['**/*.js', '**/*.jsx', '**/*.ts', '**/*.tsx', '**/*.vue', '**/*.svelte'],
extends: ['**/node_modules/**'],
})
]
// ...
})

忽略检查

.prettierignore文件写法同.gitignore

1
2
dist

与Prettier的兼容问题

首先安装eslint-plugin-prettier(将prettier规则导入eslint)与eslint-config-prettier(禁用eslintprettier冲突检查项)

1
pnpm i eslint-config-prettier eslint-plugin-prettier -D

extends选项加入"plugin:prettier/recommended"即可关闭EslintPrettier的冲突检测,并由将对Prettier的配置导入Eslint

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:@typescript-eslint/recommended',
+ 'plugin:prettier/recommended',
],
overrides: [],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: ['react', '@typescript-eslint'],
rules: {},
}

开始检查

package.json中新增脚本

1
2
3
4
5
6
7
8
{
// ...
"scripts": {
// ...
"lint": "eslint --ext .js,.jsx,.ts,.tsx --fix --quiet ./"
},
// ...
}

执行pnpm lint发现有error 'React' must be in scope when using JSX错误

配置extens插件解决

1
2
3
4
5
6
7
module.exports = {
// ...
extends: [
// ...
'plugin:react/jsx-runtime'
]
}

再次pnpm lint又提示Warning: React version not specified in eslint-plugin-react settings. See https://github.com/jsx-eslint/eslint-plugin-react#configuration .

搜索一下原来要指定react版本

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
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
'eslint:recommended',
'plugin:react/recommended',
'plugin:react/jsx-runtime',
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
overrides: [],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: ['react', '@typescript-eslint'],
rules: {},
settings: {
react: {
version: 'detect', // 自动推导react`install`的版本
},
},
}

pnpm lint就没有警告与错误了,并在文件中修改不符合prettier规范时也会保存提示

快速格式化

另外也可配置保存时自动格式化不用再用lint指令了

打开vscode,ctrl+shift+p搜索setting.json打开后添加如下配置保存即可自动保存时格式化

1
2
3
4
5
6
7
8
{
// ...
"editor.codeActionsOnSave": {
"source.fixAll": false,
"source.fixAll.eslint": true
},
// ...
}

vscode已安装eslint插件

Prettier

安装

vscode安装插件prettier

1
pnpm i -D -E prettier

--save-exact(-E)用于固定prettier版本

配置文件

安装完成后执行以下命令初始化Prettier

1
pnpm create prettier

配置完风格选项后自动生成.prettierrc.yaml配置文件

prettierrc.yaml.

1
2
3
4
5
6
7
8
9
10
printWidth: 80
tabWidth: 2
useTabs: false
semi: false
singleQuote: true
trailingComma: all
bracketSpacing: true
jsxBracketSameLine: false
arrowParens: always

风格配制

1
2
3
tabWidth: 2        # tab格数
semi: true # 是否加分号
singleQuote: false # 是否使用单引号

忽略检查

.prettierignore文件写法同.gitignore

prettierignore.

1
2
dist

快速格式化

vscode快捷键ctrl+shift+F可快速修正(右键使用...格式化文档选择prettier)

打开vscode,ctrl+shift+p搜索setting.json打开后添加如下配置保存即可自动保存时格式化

1
2
3
4
5
6
{
// ...
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
// ...
}

vscode已安装Prettier插件

Stylelint

stylelint用于对css进行格式化(如对css属性书写进行排序)

Husky

安装husky(方便的处理git钩子,在git执行命令前后添加指令)

安装lint-staged对进入git暂存区的文件lint检查

1
pnpm i husky lint-staged -D

package.json文件添加scripts

1
2
3
4
5
6
7
8
{
// ...
"scripts": {
// ...
"prepare": "husky install",
}
// ...
}

再执行pnpm i(项目已经创建git仓库)会自动执行husky install并生成.husky文件夹

新建lint-staged指令在git commit前自动执行

1
pnpx husky add .husky/pre-commit "npx lint-staged"

Commitlint

Gitmoji-cli

1
pnpm add gitmoji-cli -g

使用gitmoji -c进行交互式提交

使用gitmoji -i添加git commit钩子(所有人)


Eslint,StyleLint,CommitLint,Prettier安装与配置
https://qingshaner.com/Prettier配置/
作者
清山
发布于
2022年6月12日
许可协议