Skip to main content

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 linuxmac其实是不太一样的,如果不想代码混乱的话,有必要 对项目的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

参数资料: