После клона: npm install производит другой файл блокировки пакета

Я использую npm 5.6.0 и узел v6.9.5 на OSX El Capitan 10.11.6.

Сценарий: у меня есть проект nodejs, в котором package-lock.json создается после каждой установки npm, как и ожидалось. Проект, включая package-lock.json, регистрируется в репозитории, а затем клонируется в другое место (тот же компьютер, та же ОС, те же версии npm и узла).

Проблема: Однако на этот раз при запуске npm install пакет-lock.json отличается порядком зависимостей.

Предыстория: теперь это обычно не будет проблемой, но мне нужно вычислить контрольную сумму по всем файлам в ловушке git pre-commit, чтобы указать в приложении, что проект не был изменен, когда он был клонирован из репозитория. и хотел бы включить package-lock.json в эту контрольную сумму.

Следовательно:

рабочая папка: -> npm install -> package-lock.json -> контрольная сумма -> ABCD1234 -> зафиксировать и отправить клонированную папку: clone -> npm install -> package-lock.json -> контрольная сумма -> 9876EFGH

и единственное отличие (с помощью инструмента filemerge в OS X) заключается в различном порядке одной зависимости в файле package-lock.json, каждый второй файл точно такой же.

Разве два файла package-lock.json не должны совпадать? Или я пропустил конкретную концепцию npm, которая не гарантирует этого?

Любая помощь / подсказка приветствуется, спасибо!

(Обычно я прикрепляю package-lock.json как код, однако этот файл слишком длинный, поэтому я предоставлю скриншот с реальными различиями)

diff of * package-lock.json * - только отличия

0 ответов

Если вы хотите определить или изменить содержимое package-lock.json, используйте npm install, но (начиная с npm 5.7.1), если вы хотите убедиться, что получаете именно то, что содержится в предоставленном package-lock.json, используйте npm ci

https://docs.npmjs.com/cli/ci.html

Другие вопросы по тегам