Вы можете проверить на npm package git-hooks
, что позволяет установить pre-commit or pre-push hooks (то есть client-side hooks)
Такие крючки (как этот pre-commit one) могут быть использованы для проверки непротиворечивости исходных файлов, как npm-shrinkwrap.json
.
Смотрите также, например turadg/npm-shrinkwrap-git-hooks
Набор скриптов для автоматической npm shrinkwrap
и npm install
по мере необходимости.
Если вы сделаете замену на package.json
, крюк pre-commit
будет run npm shrinkwrap
для обновления npm-shrinkwrap.json
.
#!/usr/bin/env bash
# This ensures that dependencies are installed locally whenever merging a commit
# that changed the shrinkwrap.
function package_changes_staged {
! git diff --cached --quiet -- package.json
}
# update shrinkwrap when spec changes
if package_changes_staged; then
echo "Running 'npm shrinkwrap' to match new package spec..." >&2
npm shrinkwrap
git add npm-shrinkwrap.json
fi
UPDATE по galk-в
Я выбрал pre-commit с этим обновлением в package.json
...
"scripts": {
"check-shrinkwrap": "if (! git diff --cached --quiet -- package.json); then echo 'Running `npm shrinkwrap` to match new package spec...' >&2; npm shrinkwrap; git add npm-shrinkwrap.json; fi"
},
...
"pre-commit": [
"check-shrinkwrap",
"test"
]
...
Спасибо! Вы имеете представление о решении CI? – galkin
@ galk.in Конечно. вы можете интегрировать это в среду Travis CI, например (https://pub.clevertech.biz/faster-node-js-builds-with-travis-ci-41aa275015e7#.dqvjoo41f) – VonC
@ galk.in вы можете видеть свою вопрос обсуждается в контексте другого CI: greekeeper: https://github.com/greenkeeperio/greenkeeper/issues/96 – VonC