Почему package-lock.json создается, если npm уже имеет npm-shrinkwrap.json для целей блокировки? - PullRequest
0 голосов
/ 16 сентября 2018

npm-shrinkwrap.json : Блокировка дерева node_modules, а также зависимостей и вложенных зависимостей для предотвращения взлома кода пакета на других машинах.

package-lock.json : блокировка дерева node_modules, а также зависимостей и вложенных зависимостей для предотвращения взлома кода пакета на других машинах.

Итак, почему создается package-lock.json , еслиУ npm уже есть npm-shrinkwrap.json для целей блокировки?

Почему они создали новый файл package-lock.json , чтобы породить проблемы совместимости версий npmпотому что разработчики уже используют npm-shrinkwrap.json ?

Любой простой, легкий и хорошо объясненный ответ с примером?

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

Они делают то же самое. Однако есть несколько различий

  • package-lock.json игнорируется npm при публикации пакетов, пока npm-shrinkwarp.JSON нет.Как правило, не рекомендуется публиковать модули с npm-shrinkwarp.json
  • , когда оба находятся в корневом каталоге, используется npm-shrinkwarp.json .
0 голосов
/ 16 сентября 2018

npm публикует большинство файлов в исходном каталоге по умолчанию, и люди публиковали термоусадочную пленку в течение многих лет. Мы не хотели нарушить совместимость. С --save и shrinkwrap по умолчанию было большой риск случайного попадания и распространения через реестр и в основном делают нашу способность обновлять Депс и дедупликация ... ноль.

Итак, мы выбрали новое имя. И мы выбрали новое название вида Внезапное. Новый файл блокировки в основном использует один и тот же код, точно такой же формат

Идея определенно состоит в том, чтобы package-lock.json был самым последним и лучшим в технологии shrinkwrap, а npm-shrinkwrap.json должен быть зарезервирован для тех людей, которые очень заботятся о том, чтобы их библиотеки имели точные node_modules - npm- У shrinkwrap были некоторые специальные настройки поведения зависимости, которых нет у package-lock

...