Узел обновления определенного пакета

187

Я хочу обновить синхронизацию браузера без обновления всех пакетов моего узла . Как мне этого добиться? Моя текущая версия Browser-sync не имеет GUI Browser-sync :(

├─┬ browser-sync@1.9.2
 ├── browser-sync-client@1.0.2
Самуил
источник
5
npm install browser-sync@latestможет быть. следует
перезаписать

Ответы:

291

В большинстве случаев вы можете просто npm обновить (или обновить пряжу ) модуль, чтобы получить последние не нарушающие изменения (с учетом semver, указанного в вашем package.json) (<- прочитайте эту последнюю часть снова).

npm update browser-sync
-------
yarn upgrade browser-sync
  • Используйте, npm|yarn outdatedчтобы увидеть, какие модули имеют более новые версии
  • Используйте npm update|yarn upgrade(без имени пакета), чтобы обновить все модули
  • Включите, --save-dev|--devесли хотите сохранить новые номера версий в свой package.json. (ПРИМЕЧАНИЕ: начиная с npm v5.0 это необходимо только для devDependencies).

Основные обновления версии:

В вашем случае, похоже, что вам нужна следующая основная версия (v2.xx), которая может иметь критические изменения, и вам нужно будет обновить приложение, чтобы учесть эти изменения. Вы можете установить / сохранить последнюю версию 2.x.x, выполнив:

npm install browser-sync@2 --save-dev
-------
yarn add browser-sync@2 --dev

... или последний 2.1.x, выполнив:

npm install browser-sync@2.1 --save-dev
-------
yarn add browser-sync@2.1 --dev

... или последний и самый лучший , выполнив:

npm install browser-sync@latest --save-dev
-------
yarn add browser-sync@latest --dev

Примечание: последний не отличается от этого:

npm uninstall browser-sync --save-dev
npm install browser-sync --save-dev
-------
yarn remove browser-sync --dev
yarn add browser-sync --dev

--save-devЧасть важна. Это удалит его, удалит значение из вашего package.json, а затем переустановит последнюю версию и сохранит новое значение в ваш package.json.

Райан Уил
источник
1
npm update browser-sync --save-devтакже будет работать, чтобы обновить до основной версии и сохранить пакет-lock.json (если он существует, конечно).
Wildhoney
5
@Wildhoney - я с вами не согласен (в основном) - npm updateустановит последнюю версию semver . Единственный способ обновления до следующей основной версии - сделать это явно, как я описал выше. Если вы никогда не устанавливали пакет и пытались обновить / сохранить его, он установит последнюю версию, но это не очень распространено. Существует также редко используемый semver для указания последней основной версии - это будет выглядеть так в вашем package.json: browser-sync: '*'ИЛИ browser-sync: 'x'- но я НЕ РЕКОМЕНДУЮ это делать.
Райан Уил
1
@RyanWheale, обратите внимание, что npm@5.0.0 --save-devне нужен, потому что он будет автоматически сохранен в package.json ( docs.npmjs.com/cli/update )
lakesare
На самом деле @lakes по состоянию на npm@5.0.0 по умолчанию --save, а не --save-dev. Вам все еще нужно указать --save-dev, если вы хотите создать зависимость только для разработчиков.
Джошуа Харрис
2
npm install some-package @ latest --save-dev работал для меня. Спасибо.
Ashilon
3

Используйте npm outdated для просмотра текущей и последней версии всех пакетов.


Затем npm i packageName@versionNumberустановить конкретную версию: пример npm i browser-sync@2.1.0 .

Или npm i packageName@latestустановить последнюю версию: пример npm i browser-sync@latest .

Куай-Гон Джинн
источник
-2

Всегда вы можете сделать это вручную. Это шаги:

  • Перейдите на страницу пакета NPM и найдите ссылку на GitHub.
  • Теперь загрузите последнюю версию, используя ссылку для скачивания GitHub, или путем клонирования. git clone github_url
  • Скопируйте пакет в свою node_modulesпапку, например, дляnode_modules/browser-sync

Теперь это должно работать для вас. Чтобы быть уверенным, что это не сломается в будущем npm i, продолжайте следующие два шага:

  • Проверьте версию нового пакета, прочитав package.jsonфайл в его папке.
  • Откройте свой проект package.jsonи установите ту же версию, где он будет отображаться в dependenciesчасти вашегоpackage.json

Пока не рекомендуется делать это вручную. Иногда полезно понять, как все работает под капотом, чтобы можно было что-то исправить. Я делал это время от времени.

Аминадав Гликштейн
источник