Есть ли способ заставить npm генерировать package-lock.json?
Я удалил его случайно и с тех пор сделал много изменений в package.json
. Установка npm install
или npm update
больше не генерируют package-lock.json
. Я попытался очистить кэш npm и кэш nvm, но, похоже, ничего не работает. Я попробовал это на нескольких версиях Node.js(6.10.3 Node.js - 3.10.10 npm - это то, над чем я хотел бы работать), и он не работает ни на одной.
Есть ли способ заставить npm сгенерировать файл package-lock.json
?
Ответы
Ответ 1
По умолчанию package-lock.json
обновляется всякий раз, когда вы запускаете npm install
. Однако это можно отключить глобально, установив package-lock=false
в ~/.npmrc
.
Когда глобальный параметр package-lock=false
активен, вы все равно можете принудительно package-lock.json
файл package-lock.json
, выполнив:
npm install --package-lock
Эта команда является единственным верным способом принудительного обновления package-lock.json
.
Ответ 2
В npm 6.x вы можете использовать
npm i --package-lock-only
Согласно https://docs.npmjs.com/cli/install.html
Аргумент --package-lock-only будет обновлять только package-lock.json вместо проверки node_modules и загрузки зависимостей.
Ответ 3
На это даются ответы в комментариях; package-lock.json
- это функция в package-lock.json
npm
v5 и выше. npm shrinkwrap
- это то, как вы создаете файл блокировки во всех версиях npm
.
Ответ 4
package-lock.json пересоздается всякий раз, когда вы запускаете npm i
.
Ответ 5
Как объясняется в нескольких ответах, вы должны запустить:
npm i
НО если это не решит...
Проверьте версию вашего исполняемого файла npm
. (для меня это был 3.x.x, который не использует package-lock.json
(вообще))
npm -v
Он должен быть не менее 5.x.x (который представил файл package-lock.json.)
Чтобы обновить npm на Lunix, следуйте этим инструкциям.
Для получения более подробной информации о пакетных файлах, пожалуйста, прочитайте эту среду историю.