Я удалил его случайно и с тех пор внес в него много изменений 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
файл?
node.js
npm
package-lock.json
Большие деньги
источник
источник
package-lock.json
генерируется автоматически по умолчанию в npm, начиная с v5, в предыдущих версиях имя файла блокировки было,npm-shrinkwrap.json
и оно создавалось вручную с помощьюnpm shrinkwrap
команды.node 8.6.0
и с ним,npm 5.3.0
и это сработало..gitignore
. Я случайно попалpackage-lock.json
в это,.gitignore
и потому чтоpackage-lock.json
не появлялся вgit status
нем, это меня сбивало с толку.Ответы:
По умолчанию
package-lock.json
обновляется при каждом запускеnpm install
. Тем не менее, это может быть отключен глобально, установивpackage-lock=false
в~/.npmrc
.Когда глобальная
package-lock=false
настройка активна, вы все равно можете принудительноpackage-lock.json
обновить файл проекта, запустив:Эта команда - единственный верный способ принудительного
package-lock.json
обновления.источник
package-lock.json
.package-lock.json
поддерживается только в npm v5 +.В npm 6.x вы можете использовать
Согласно https://docs.npmjs.com/cli/install.html
источник
npm i --package-lock-only --only=production
похоже, не работает.package-lock.json
только производственные зависимости. Но если вы запустите,npm i --only=production
он должен установить только производственные зависимости. Таким образом, ваш процесс сборки может выглядеть так: установить все зависимости, создать приложение, удалитьnode_modules
и установить только производственные зависимости.На это ответят в комментариях;
package-lock.json
это функция вnpm
версии 5 и выше.npm shrinkwrap
как вы создаете файл блокировки во всех версияхnpm
.источник
package-lock.json
файлы s - это не то же самое, что и файлы shrinkwrap.npm-shrinkwrap.json
будут опубликованы в реестре иpackage-lock.json
не будут.npm shrinkwrap
генерируетnpm-shrinkwrap.json
, но как вы генерируетеpackage-lock.json
?--package-lock
Как объяснялось в нескольких ответах, вы должны запустить:
npm i
НО если не решит ...
Проверьте версию вашего
npm
исполняемого файла. (Для меня это был 3.xx, который не используетpackage-lock.json
(вообще))npm -v
Он должен быть не ниже 5.xx (в котором представлен файл package-lock.json.)
Чтобы обновить npm в Lunix, следуйте этим инструкциям.
Для получения более подробной информации о файлах пакетов, пожалуйста, прочтите эту статью.
источник
Если НАЯ версия ниже , чем версия 5 установите более позднюю версию для получения автоматической генерации пакетов-lock.json .
Пример: обновите текущий npm до версии 6.14.0
Вы можете просмотреть список последних версий npm по
источник
package-lock.json генерируется заново при каждом запуске
npm i
.источник
node
иnpm
. Я думаю, что этоnpm
> =5.0
иnode
> =7.0
, но я не уверен в этом на 100%. У меня не работаетnode 6.11.3
.