build: use cross-platform hook installation with shelljs

This commit is contained in:
Evan You 2017-06-17 19:21:00 +08:00
parent 610d1aabe9
commit b5f08f3bed
5 changed files with 22 additions and 8 deletions

View File

@ -43,7 +43,10 @@ After cloning the repo, run:
$ npm install $ npm install
``` ```
This would also run the `postinstall` script which will link git commit hooks if you are on a Unix-like system. This will also run the `postinstall` script which links two git hooks:
- `pre-commit`: runs ESLint on staged files.
- `commit-msg`: validates commit message format (see below).
### Commiting Changes ### Commiting Changes

8
build/install-hooks.js Normal file
View File

@ -0,0 +1,8 @@
const { test, ln, chmod } = require('shelljs')
if (test('-e', '.git/hooks')) {
ln('-sf', '../../build/git-hooks/pre-commit', '.git/hooks/pre-commit')
chmod('+x', '.git/hooks/pre-commit')
ln('-sf', '../../build/git-hooks/commit-msg', '.git/hooks/commit-msg')
chmod('+x', '.git/hooks/commit-msg')
}

View File

@ -1,6 +0,0 @@
#!/usr/bin/env bash
if test -e .git/hooks; then
ln -sf ../../build/git-hooks/pre-commit .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit
ln -sf ../../build/git-hooks/commit-msg .git/hooks/commit-msg && chmod +x .git/hooks/commit-msg
fi

View File

@ -38,7 +38,7 @@
"release": "bash build/release.sh", "release": "bash build/release.sh",
"release:weex": "bash build/release-weex.sh", "release:weex": "bash build/release-weex.sh",
"release:note": "node build/gen-release-note.js", "release:note": "node build/gen-release-note.js",
"postinstall": "bash build/install-hooks.sh", "postinstall": "node build/install-hooks.js",
"commit": "git-cz" "commit": "git-cz"
}, },
"repository": { "repository": {
@ -117,6 +117,7 @@
"rollup-watch": "^4.0.0", "rollup-watch": "^4.0.0",
"selenium-server": "^2.53.1", "selenium-server": "^2.53.1",
"serialize-javascript": "^1.3.0", "serialize-javascript": "^1.3.0",
"shelljs": "^0.7.8",
"typescript": "^2.3.4", "typescript": "^2.3.4",
"uglify-js": "^3.0.15", "uglify-js": "^3.0.15",
"webpack": "^2.6.1", "webpack": "^2.6.1",

View File

@ -4824,6 +4824,14 @@ shelljs@0.7.6, shelljs@^0.7.5:
interpret "^1.0.0" interpret "^1.0.0"
rechoir "^0.6.2" rechoir "^0.6.2"
shelljs@^0.7.8:
version "0.7.8"
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
dependencies:
glob "^7.0.0"
interpret "^1.0.0"
rechoir "^0.6.2"
signal-exit@^3.0.0: signal-exit@^3.0.0:
version "3.0.2" version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"