codeFormat

代码格式化相关

eslint 格式化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// devDependencies
// eslint
// 以下按需:
"eslint-plugin-html"
"eslint-plugin-import"
"eslint-plugin-node"
"eslint-plugin-promise"
"eslint-plugin-standard"
"eslint-plugin-vue"
// react:
"eslint-plugin-eslint-comments"
"eslint-plugin-jest"
"eslint-plugin-jsx-a11y"
"eslint-plugin-react"
"eslint-plugin-react-hooks"
"eslint-plugin-unicorn"
"eslint-template-visitor"
1
2
// scripts
"lint": "eslint src/**/*.{js,jsx,ts,tsx,vue} --fix",

eslint 配置

1
2
3
4
5
6
7
8
<!-- 初始化 -->
eslint --init
<!-- 关闭当前行 -->
// eslint-disable-line
关闭下一行
// eslint-disable-next-line
关闭当前文件
/* eslint-disable */

package.json

1
2
3
4
5
6
7
"eslintConfig":
{
"env": {
"browser": true,
"node": true
}
}

YAML

1
2
env:
browser: true

.eslintrc.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
module.exports = {
<!-- 运行环境 -->
"env": {
"browser": true,
},
<!-- 插件 -->
'plugins': [
'vue'
],
<!-- 扩展配置文件 -->
extends:[],
<!-- 规则 -->
'rules': {
},
<!-- 全局变量 -->
globals:{
window:true
}
}

为特定类型的文件指定处理器

1
2
3
4
5
6
7
8
9
10
11
12
13
// rules
"overrides": [
{
"files": ["*.md"],
"processor": "a-plugin/markdown"
},
{
"files": ["**/*.md/*.js"],
"rules": {
"strict": "off"
}
}
]

stylelint 格式化

安装

1
2
3
npm i -d stylelint stylelint-config-recommended-scss stylelint-config-prettier
# 添加scripts
npm set-script stylelint "stylelint \"src/**/*.scss\""
1
2
3
4
// .stylelintrc.json
{
"extends": ["stylelint-config-recommended-scss","stylelint-config-prettier"]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// .stylelintrc.js
module.exports = {
extends: ['stylelint-config-recommended-scss', 'stylelint-config-prettier'],
rules: {
indentation: 2,
'scss/operator-no-unspaced': null,
'no-duplicate-selectors': null,
'selector-type-no-unknown': null,
},
overrides: [
{
files: ['src/**/*.scss'],
customSyntax: 'postcss-scss',
},
],
}

prettier 格式化

1
2
3
4
5
6
7
8
9
10
# 不使用prettier格式化代码,常用于css PX 处理
/* prettier-ignore */
# 全局安装
npm i prettier -g
# 局部安装
npm i prettier -D
# package.json script
"prettier --write 'src/**/*.{js,jsx,tsx,ts,vue,less,md,json}'",
# eslint 增加prettier解决冲突
npm i eslint-config-prettier -D
1
2
3
4
5
// .eslintrc
module.exports = {
extends:[
'prettier'
],

git 代码提交检查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// package.json
// devDependencies: husky lint-staged
{
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,jsx,ts,tsx,vue,json,css,scss,md}": [
"prettier --write",
"git add"
],
"src/**/*.{js,jsx,ts,tsx,vue}": [
"eslint --fix",
"git add"
]
}
}
打赏

请我喝杯咖啡吧~

支付宝
微信