内容简介:一个项目往往不只一个人开发,多人合作自然需要版本控制来合理管理代码,比如 git、svn 等。个人喜欢 git,以及直男社区 github。git 除了能管理代码版本,还可以在 npm script 里运用,不然我也不会在这啰嗦那么多做铺垫了。git 在 npm script 的运用主要体现在注:有些懒可以偷,有些不可以。有些懒,虽一时方便了自己,但长远来看,不仅是坑了自己,更是坑了整个团队。1.安装依赖包 husky 后,可查看
一个项目往往不只一个人开发,多人合作自然需要版本控制来合理管理代码,比如 git、svn 等。个人喜欢 git,以及直男社区 github。git 除了能管理代码版本,还可以在 npm script 里运用,不然我也不会在这啰嗦那么多做铺垫了。git 在 npm script 的运用主要体现在 pre 和 post 的钩子上,也就是大家熟知的 git hooks,能帮助我们在代码提交(commit)和获取时(push)做一些事情。
说说场景
- 本地仓库配置
pre-commit和pre-push,是给 要提交的代码 做检查; - 远程仓库配置
pre-receive,是给 拉取下来的代码 做检查,以确保符合本地代码规范,假如没有这步,本地开发者偷懒使用--no-verify(或-n)就可以规避本地代码检查;
注:有些懒可以偷,有些不可以。有些懒,虽一时方便了自己,但长远来看,不仅是坑了自己,更是坑了整个团队。
全面检查
安装依赖包
npm install husky -D // 或 yarn add husky -D 复制代码
编写
{
"scripts": {
"lint:js": "# 检查 js \n eslint ./src/**/*.js",
"test": "# 单元测试 \n cross-env NODE_ENV=test mocha tests/"
},
"husky": {
"hooks": {
"pre-commit": "npm run lint:js",
"pre-push": "npm run test"
}
},
}
复制代码
剖析
1.安装依赖包 husky 后,可查看 .git/hooks 目录,都是 husky 的钩子
执行
1.代码开发完毕,准备提交到本地仓库
git commit -am "git hooks 的使用" 复制代码
此时会调用 pre-commit ,发现错误:
2.解决了有错误的 request.js 问题,提交到远程分支上,又发现单元测试环节出现了问题:
3.解决单元测试错误就能提交到远程分支仓库了
搭载 lint-staged 让你飞
以上基本实现我们所需要的,但是...现实的情况是,有些场景我们会接手他人项目,如果按上面步骤走,每次提交代码就会检查所有代码(上面例子只检查 js 的代码)就会发现有 n 个文件有警告或错误(成百上几个),瞬间处于崩溃边缘,想重构或跑路节奏。
lint-staged 当然就是帮助我们解决这类场景问题的,它的作用是指检查当前改动的文件(或者说当天要提交到本地仓库的文件)。
安装依赖包
npm install lint-staged prettier -D // 或 yarn add lint-staged prettier -D 复制代码
编写
{
"scripts": {
"lint:js": "# 检查 js \n eslint ./src/**/*.js",
"test": "# 单元测试 \n cross-env NODE_ENV=test mocha tests/"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"pre-push": "npm run test"
}
},
"lint-staged": {
"src/**/*.js": [
"prettier --tab-width 4 --write",
"eslint --fix",
"git add -A"
],
"src/**/*.{css, less}": [
"prettier --tab-width 4 --write",
"stylelint --fix",
"git add -A"
]
}
}
复制代码
剖析
执行
git commit -am "本次提交解释说明" 复制代码
假如 src/utils 目录下有 request.js 和 index.js 两个文件,其中两个文件代码都有错误,但是 index.js 是别人写的,属于历史版本(之前怎么提交到仓库或许是因为没做检查或者跳过检查了吧)。本次其实只改动了 request.js 文件,如果按照前面步骤,就会检查出两个文件都有问题,而这又不是我们想要的,因为 index.js 文件不是我写的,里面的代码不好改动(业务逻辑和功能逻辑不明白),这个时候,lint-staged 的价值就体现出来了。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 袜子商店应用:一个云原生参照应用
- Android 应用中跳转到应用市场评分
- 授之以渔-运维平台应用模块一(应用树篇)
- OAM(开放应用模型)——定义云原生应用标准的野望
- ChromeOS 终端应用程序暗示其即将支持 Linux 应用
- Android应用之间数据的交互(一)获取系统应用的数据
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
计算机图形学与几何造型导论
戈德曼 / 邓建松 / 2011-9 / 69.00元
《世界著名计算机教材精选:计算机图形学与几何造型导论》是世界著名计算机教材精选之一。《世界著名计算机教材精选:计算机图形学与几何造型导论》共四部分三十章节,内容包括乌龟绘图,应用递归乌龟程序生成分形,分形的奇特性质,仿射变换,仿射几何:二维计算机图形学的连点过程,应用迭代函数系统生成分形,不动点定理及其推论,递归乌龟程序与共形迭代函数系统等。《世界著名计算机教材精选:计算机图形学与几何造型导论》可......一起来看看 《计算机图形学与几何造型导论》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
URL 编码/解码
URL 编码/解码