Почему «npm install git repo url» перезаписывает пакет-блокировку. json? - PullRequest
2 голосов
/ 03 апреля 2020

Я запускаю npm install в общедоступном c GitHub repo , и он заблокировал файл express at 4.17.0 в package-lock.json, который является правильным поведением package-lock.json файл.

Однако, когда я выполняю npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git в пустой папке, тогда package-lock. json файл, созданный с новой версией express, заблокированной в 4.17.1. Я знаю, что в исходном пакете есть знак каретки ^. json но почему источник package-lock. json на этот раз игнорируется?

Моя проблема в том, что когда я выполняю npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git на сервере, он должен создать файл package-lock.json с express, заблокированным на 4.17.0, а не с 4.17.1, потому что источник package-lock. * Файл 1075 * в репо заблокировал express на 4.17.0.

Есть ли какой-нибудь способ, которым я могу достичь этого, то есть npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git будет рассматривать исходный файл package-lock. json файл и не должен его игнорировать?

Я используя следующие версии:

npm version: 5.4.1

node version: 8.9.3

npm config get registry prints: https://registry.npmjs.org/

OS: Ubuntu 18.04

Примечание: Я пробовал npm install git+https://github.com/nabeel-nazir confiz/package.lock.master.git со следующими подписками, но проблема была та же, то есть он заблокировал express в 4.17.1

npm version: 6.14.4

node version: 13.12.0

npm config get registry prints: https://registry.npmjs.org/

OS: Ubuntu 18.04

Прокомментируйте, пожалуйста, если вам нужно больше информации по этому вопросу.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Удалите знак моркови ^. Тогда он останется заблокированным на 4.17.0.

0 голосов
/ 04 апреля 2020

npm install xxx будет каждый раз генерировать новый файл блокировки. (На самом деле он просто игнорирует файл блокировки и генерирует его при каждом запуске)

npm ci, с другой стороны, это команда для установки пакетов на основе файла блокировки вместо package.json

...