Как мне обновить одну зависимость в package-lock.json, без каких-либо побочных эффектов? - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу обновить следующую зависимость NPM (v5) в моем приложении с версии 1.0.0 до 1.0.1 без каких-либо изменений в моем package.json файле.

"dependencies": {
  "package": "~1.0.0"
},

Мой текущий файл package-lock.json ссылается на зависимость как версия 1.0.0, поэтому, как и ожидалось, при запуске npm install устанавливается версия 1.0.0 пакета.

Проблема заключается в запуске npm install package@1.0.1 или npm update package, когда обе команды, похоже, изменяют способ ссылки на версию пакета в package.json

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

Заранее спасибо!

1 Ответ

0 голосов
/ 04 ноября 2018

package-lock.json генерируется npm, и его трудно изменить без npm, поскольку он содержит хэши пакетов.

Если вы ссылаетесь только на модули, использующие версию патча (~1.0.0), я думаю, что безопасно сделать следующее:

  • Резервное копирование package.json и удаление его
  • Выполнить npm update package. Это будет использовать package-lock.json в качестве ссылки, а также обновит package-lock.json
  • Восстановление package.json
  • Запуск npm update package теперь не будет обновлять package.json, поскольку package-lock.json является более новой версией

Если вы ищете однострочную команду:

mv package.json package.json.tmp && npm update package && mv package.json.tmp package.json

Опять же, это безопасно делать только при работе с версиями патча (~1.0.0). Если вы указали младшую (^1.0.0) или основную (1.0.0) версии, вы можете обновить package.json напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...