vue项目必备配置(vscode)
常用eslint配置
1、 安装npm依赖包
1 | npm i babel-eslint eslint eslint-plugin-import eslint-config-airbnb-base eslint-plugin-vue -D |
2、 创建.eslintrc.js
文件
1 | module.exports = { |
3、 创建.eslintignore
文件
1 | node_modules |
4、package.json
文件
1 | "scripts": { |
5、vscode
保存自动格式化
安装Vetur
插件
把下列勾选项去掉避免和eslint冲突
安装eslint
插件
配置setting.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"eslint.autoFixOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"html",
"vue"
],
"eslint.alwaysShowStatus": true,
}
stylelint 配置
1、安装 相应npm包
1 | npm i -D stylelint stylelint-config-airbnb |
如果使用标准规范只需改为 安装 stylelint-config-stand
即可
2、安装适配预处理语法的插件(sass
)
1 | npm i -D stylelint-scss |
3、安装stylelint-config-airbnb
缺失依赖
1 | npm i stylelint-order -D |
4、创建.stylelintrc.js
文件
更多规则配置中文文档 http://stylelint.docschina.org/user-guide/rules/1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19module.exports = {
ignoreFiles: ["**/*.js", "src/assets/css/element-variables.scss", "theme/"],
extends: ["stylelint-config-airbnb"],
plugins: ['stylelint-scss'],
rules: {
// 不要使用已被 autoprefixer 支持的浏览器前缀
'media-feature-name-no-vendor-prefix': true,
'at-rule-no-vendor-prefix': true,
'selector-no-vendor-prefix': true,
'property-no-vendor-prefix': true,
'value-no-vendor-prefix': true,
// 最多允许嵌套20层,去掉默认的最多2层
'max-nesting-depth': 20,
// 颜色值要小写
'color-hex-case': 'lower',
// 颜色值能短则短
'color-hex-length': 'short',
}
};
5、package.json
文件
1 | "scripts": { |
6、vscode
保存自动格式化
安装stylelint
插件
配置settings.json
1
2
3
4
5{
"editor.codeActionsOnSave": {
"source.fixAll.stylelint": true
}
}
git提交检测自动格式化保存
安装husky
包1
npm i husky -D
安装lint-staged
包1
npm i lint-staged -D
配置package.json
文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15"husky": {
"hooks": {
"pre-commit": "lint-staged",
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --ext .js,.vue src --fix",
"git add"
],
"src/**/*.{css,scss,sass,vue}": [
"stylelint --fix",
"git add"
]
}
git commit 规范
1 | <type>(<scope>): <subject> |
大致分为三个部分(使用空行分割):
- 标题行: 必填, 描述主要修改类型和内容
- 主题内容: 描述为什么修改, 做了什么样的修改, 以及开发的思路等等
- 页脚注释: 可以写注释,BUG 号链接
type: commit 的类型
- feat: 新功能、新特性
- fix: 修改 bug
- perf: 更改代码,以提高性能
- refactor: 代码重构(重构,在不影响代码内部行为、功能下的代码修改)
- docs: 文档修改
- style: 代码格式修改, 注意不是 css 修改(例如分号修改)
- test: 测试用例新增、修改
- build: 影响项目构建或依赖项修改
- revert: 恢复上一次提交
- ci: 持续集成相关文件修改
- chore: 其他修改(不在上述类型中的修改)
- release: 发布新版本
- workflow: 工作流相关文件修改
- scope: commit 影响的范围, 比如: route, component, utils, build…
- subject: commit 的概述
- body: commit 具体修改内容, 可以分为多行.
- footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接.
git 提交检测规范
创建和package.json
同级verify-commit.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16const msgPath = process.env.HUSKY_GIT_PARAMS
const msg = require('fs')
.readFileSync(msgPath, 'utf-8')
.trim()
const commitRE = /^(feat|fix|docs|style|refactor|perf|test|workflow|build|ci|chore|release|workflow)(\(.+\))?: .{1,50}/
if (!commitRE.test(msg)) {
console.log()
console.error(`
不合法的 commit 消息格式。
请前往 README.md 文件 查看 git commit 规范
`)
process.exit(1)
}
配置 package.json
1
2
3
4
5
6
7
8{
"husky": {
"hooks": {
...
"commit-msg": "node verify-commit.js"
}
},
}
路径别名提示(vscode)
- 安装
Path Intellisense
- 根目录下创建
jsconfig.json
文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18{
"compilerOptions": {
"target": "es6",
"baseUrl": ".",
"paths": { // 可以自定义其他别名提示
"@/*": [
"src/*"
]
}
},
"exclude": [
"node_modules",
"dist"
],
"include": [
"src/**/*"
]
}
终于整理完了。留着之后创建项目的时候用