После клона: 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 как код, однако этот файл слишком длинный, поэтому я предоставлю скриншот с реальными различиями)
0 ответов
Если вы хотите определить или изменить содержимое package-lock.json, используйте npm install
, но (начиная с npm 5.7.1), если вы хотите убедиться, что получаете именно то, что содержится в предоставленном package-lock.json, используйте npm ci