2016-11-01 3 views
1

Иногда члены моей команды забыли обновить npm-shrinkwrap.json после обновления package.json. Я знаю this package от uber, но его нельзя использовать с npm v3. Так что теперь это не решение.Как проверить последовательность npm-shrinkwrap.json и package.json

Есть ли у меня возможность автоматической проверки согласованности для npm-shrinkwrap.json и package.json? Я хочу сделать это в git-hook или/и непрерывном.

ответ

1

Обновление от 24 июня 2017 Современного ответа на использование npm 5 с package-lock.json

1

Вы можете проверить на 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" 
] 
... 
+0

Спасибо! Вы имеете представление о решении CI? – galkin

+0

@ galk.in Конечно. вы можете интегрировать это в среду Travis CI, например (https://pub.clevertech.biz/faster-node-js-builds-with-travis-ci-41aa275015e7#.dqvjoo41f) – VonC

+0

@ galk.in вы можете видеть свою вопрос обсуждается в контексте другого CI: greekeeper: https://github.com/greenkeeperio/greenkeeper/issues/96 – VonC

Смежные вопросы