Есть ли способ заставить 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, следуйте этим инструкциям.

Для получения более подробной информации о пакетных файлах, пожалуйста, прочитайте эту среду историю.