95 软件工程初始化注意事项
1 编辑器默认配置
每个人的编辑器的可能不太一样,比如: tab
键, 有的些编辑器默认可能就是个tab
键,有的可能是4个空格。又比如文本的编码,有的编辑器默认
可能是gbk
也有的可能是utf-8
等等,这些不统一往往会造成代码的混乱,幸好有个配置文件就是专门为编辑器声明默认配置用的, 就是项目根目录
下的.editorconfig
文件, 对于以上的问题,它可以如下配置,来统一各大编辑器默认配置的不统一:
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = false
[*.{vue,js,scss}]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
2 git的默认配置的统一
git
的默认配置每个人的电脑可能都不太一样,如换行这个事, windowns
linux
和mac
其实是不太一样的,如果不想代码混乱的话,有必要
对项目的git
默认配置做下统一。
而项目的根目录下的.gitattributes
就是干这个事的, 配置如下:
# 规范统一的换行,不然跨平台开发就个恶梦
*.php eol=lf
3 TS/JS项目工程化相关库和配置
3.1 husky的git提交时的预检查机制
我们在提交代码时,需要跑一次预检查机制还保证,如代码的风格或语言没有出错等这些保险机制,而husky
就是这样一个实现方案。安装这个库后,就可以有package.json
中添加提交代码前就要先运行预检测相关脚本的的,这样每次提交代码就会自动预检一次,通过预检后才能提交成功。
husky
的预检实现机制是在安装时会在本地的.git/hooks/pre-comit
中加入hook
脚本,起到了监听提交前就是跑脚本的作用,如果说明格式不符合要求,则
commit
失败。
$ npm install husky -D
安装完成了,在package.json
中添加以下配置:
下面是每次提交前都会运行一次lint检查
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{ts,tsx}": [
"eslint --cache --fix",
"git add"
],
"src/**/*.{js,jsx}": [
"eslint --cache --fix",
"git add"
]
}
意思是每次提交前,会对已经添加到git暂存区
(由lint-staged库实现,后面会讲)的文件进行lint
检查通过就是添加到暂存区中
3.2 lint-staged
lint-staged
是一个能过滤出已经有git暂存区
的库,配合上面说的husky
工具,负责的工作就是找出符合匹配的暂存区
文件。
$ npm install --save-dev lint-staged