Во время разработки вы можете выбрать то, что вам удобно, но я бы порекомендовал сжать упаковку прямо перед тем, как вы начнете тестировать приложение, прежде чем приступить к работе.Заблокируйте зависимости с помощью:
npm shrinkwrap
Эта команда превращает package-lock.json
в публикуемый npm-shrinkwrap.json
или просто создает новую.Файл, созданный и обновленный этой командой, будет иметь приоритет над любыми другими существующими или будущими package-lock.json
файлами.Подробное описание конструкции и назначения блокировок пакетов в npm см. npm-package-locks
.
Таким образом, вы можете оставить зависимости, объявленные в package.json
, как они есть.(тильда / каретка), но точные версии, объявленные в npm-shrinkwrap.json
, будут когда-либо использоваться только при установке npm.
У меня лично возникла проблема непосредственно перед началом работы, когда зависимость была объявлена с ~
(более строгая) была обновлена и внесла ошибку (которая не должна происходить для исправления / исправления ошибки).Это случалось только один раз, но я не хотел бы испытывать судьбу.
Вы всегда можете обновить npm-shrinkwrap.json
, сначала выполнив npm update <package_name>
, указав пакет, который необходимо обновить, затем повторив npm shrinkwrap
обновить существующий npm-shrinkwrap.json
.
... и не забудьте npm ci