Open rccoder opened 8 years ago
原文链接: Run npm scripts in a git pre-commit Hook 首发于 众成翻译-在 pre-commit 的钩子中运行 npm script 已被 奇舞周刊-164期 收录
原文链接: Run npm scripts in a git pre-commit Hook
首发于 众成翻译-在 pre-commit 的钩子中运行 npm script
已被 奇舞周刊-164期 收录
如果你的团队和我工作的团队一样,每个人都有自己喜欢的 IDE(比如: Sublime Text, Atom, WebStorm, Vim, Visual Studio Code 等), 虽然他们大多都集成了校验功能,但是还是不能保证在 Pull Request 之前解决所有的校验问题。
因此,我们已经开始使用 node 模块的 pre-commit 去解决这个问题 —— 更加方便简单的在 git 仓库 commit 之前去执行校验。
pre-commit
npm install pre-commit --save-dev
package.json
如果你已经安装了 pre-commit, 那你就需要在你的 package.json 里面添加一个新的 pre-commit 的入口, 来表示在 commit 之前要执行的校验规则。
commit
{ "scripts": { "lint": "eslint ./ --cache --ignore-pattern .gitignore" }, "pre-commit": [ "lint" ], "devDependencies": { "eslint": "^2.12.0", "pre-commit": "^1.1.3" } }
别担心,即使你的 pre-commit 钩子没有执行成功, 你还是可以在 commit 的后面加上 --no-verify 的参数来强制提交。
--no-verify
我发现, 最好是 pre-commit 的脚本前面加上一个发生了什么事情的描述,这样就不会造成信息的混乱了。不然的话,你可能会认为是自己错用了 git 或者发生了其他什么不可描述的事情。
{ "scripts": { "lint": "eslint ./ --cache --ignore-pattern .gitignore", "precommit-msg": "echo 'Pre-commit checks...' && exit 0" }, "pre-commit": [ "precommit-msg", "lint" ], "devDependencies": { "eslint": "^2.12.0", "pre-commit": "^1.1.3" } }
你可以在 pre-commit 里面添加其他的脚本,比如单元测试(ava, mocha, jasmine......) 或者覆盖度测试(nyc, istanbul......)。 当然,在 pre-commit 的钩子里面添加的脚本越多,你的代码等待 commit 的时间也就越长。
ava
mocha
jasmine
nyc
istanbul
添加 pre-commit 可以帮助你的项目增强一致性和代码质量。 除了代码校验和单元测试之外,你有没有发现更多的使用实例呢? 如果有的话,我很想听听你的声音。 你可以在 twitter at [@elijahmanor] 上找到我。
写文不易,赠我一杯咖啡增强一下感情可好?
如果你的团队和我工作的团队一样,每个人都有自己喜欢的 IDE(比如: Sublime Text, Atom, WebStorm, Vim, Visual Studio Code 等), 虽然他们大多都集成了校验功能,但是还是不能保证在 Pull Request 之前解决所有的校验问题。
因此,我们已经开始使用 node 模块的
pre-commit
去解决这个问题 —— 更加方便简单的在 git 仓库 commit 之前去执行校验。安装
npm install pre-commit --save-dev
package.json
如果你已经安装了
pre-commit
, 那你就需要在你的package.json
里面添加一个新的pre-commit
的入口, 来表示在commit
之前要执行的校验规则。别担心,即使你的
pre-commit
钩子没有执行成功, 你还是可以在commit
的后面加上--no-verify
的参数来强制提交。Pre-commit 信息
我发现, 最好是
pre-commit
的脚本前面加上一个发生了什么事情的描述,这样就不会造成信息的混乱了。不然的话,你可能会认为是自己错用了 git 或者发生了其他什么不可描述的事情。其他建议
你可以在
pre-commit
里面添加其他的脚本,比如单元测试(ava
,mocha
,jasmine
......) 或者覆盖度测试(nyc
,istanbul
......)。 当然,在pre-commit
的钩子里面添加的脚本越多,你的代码等待 commit 的时间也就越长。结论
添加
pre-commit
可以帮助你的项目增强一致性和代码质量。 除了代码校验和单元测试之外,你有没有发现更多的使用实例呢? 如果有的话,我很想听听你的声音。 你可以在 twitter at [@elijahmanor] 上找到我。捐赠
写文不易,赠我一杯咖啡增强一下感情可好?