Nœud mettre à jour un package spécifique

187

Je souhaite mettre à jour ma synchronisation du navigateur sans mettre à jour tous mes packages de nœuds . Comment puis-je atteindre cet objectif? Ma version actuelle de Browser-sync n'a pas la GUI Browser-sync :(

├─┬ browser-sync@1.9.2
 ├── browser-sync-client@1.0.2
Samuel
la source
5
npm install browser-sync@latestpeut être. devrait l'
écraser

Réponses:

290

La plupart du temps, vous pouvez simplement mettre à jour npm (ou mettre à jour le fil ) un module pour obtenir les dernières modifications non cassantes (en respectant le semver spécifié dans votre package.json) (<- relisez cette dernière partie).

npm update browser-sync
-------
yarn upgrade browser-sync
  • Utilisez npm|yarn outdatedpour voir quels modules ont des versions plus récentes
  • Utilisez npm update|yarn upgrade(sans nom de package) pour mettre à jour tous les modules
  • Incluez --save-dev|--devsi vous souhaitez enregistrer les numéros de version les plus récents dans votre package.json. (REMARQUE: à partir de npm v5.0, cela n'est nécessaire que pour devDependencies).

Mises à jour majeures de la version:

Dans votre cas, il semble que vous souhaitiez la prochaine version majeure (v2.xx), qui est susceptible d'avoir des modifications importantes et vous devrez mettre à jour votre application pour tenir compte de ces modifications. Vous pouvez installer / enregistrer la dernière 2.x.xen faisant:

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

... ou la dernière 2.1.xen faisant:

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

... ou le dernier et le meilleur en faisant:

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

Remarque: le dernier n'est pas différent de celui-ci:

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

La --save-devpartie est importante. Cela va le désinstaller, supprimer la valeur de votre package.json, puis réinstaller la dernière version et enregistrer la nouvelle valeur dans votre package.json.

Ryan Wheale
la source
1
npm update browser-sync --save-devfonctionnerait également pour mettre à jour vers la version majeure et enregistrer le package-lock.json (s'il existe, bien sûr).
Wildhoney
5
@Wildhoney - je suis respectueusement en désaccord avec vous (la plupart du temps) - npm updateinstallera le dernier respectif de semver . La seule façon de mettre à jour vers la prochaine version majeure est de le faire explicitement comme je l'ai décrit ci-dessus. Si vous n'avez jamais installé de package et que vous essayez de le mettre à jour / de l'enregistrer, il installera la dernière version, mais ce n'est pas très courant. Il y a aussi le semver rarement utilisé pour spécifier la dernière version majeure - cela ressemblerait à ceci dans votre package.json: browser-sync: '*'OU browser-sync: 'x'- mais je ne recommande PAS de le faire.
Ryan Wheale
1
@RyanWheale, notez que puisque [email protected] --save-devn'est pas nécessaire, car il sera automatiquement enregistré dans package.json ( docs.npmjs.com/cli/update )
Lakesare
@lakesare en fait depuis [email protected], la valeur par défaut est --save, pas --save-dev. Vous devez toujours spécifier --save-dev si vous souhaitez créer une dépendance dev only.
Joshua Harris
2
npm install some-package @ latest --save-dev a fonctionné pour moi. Merci.
ashilon
3

Utilisez npm outdated pour voir la version actuelle et la dernière de tous les packages.


Puis npm i packageName@versionNumberpour installer une version spécifique: exemple npm i [email protected] .

Ou npm i packageName@latestpour installer la dernière version: exemple npm i browser-sync@latest .

Qui-Gon Jinn
la source
-2

Vous pouvez toujours le faire manuellement. Voici les étapes:

  • Accédez à la page du package NPM et recherchez le lien GitHub.
  • Téléchargez maintenant la dernière version en utilisant le lien de téléchargement GitHub, ou en clonant. git clone github_url
  • Copiez le package dans votre node_modulesdossier par exemplenode_modules/browser-sync

Maintenant, cela devrait fonctionner pour vous. Pour être sûr qu'il ne se cassera pas à l'avenir lorsque vous le ferez npm i, continuez les deux étapes suivantes:

  • Vérifiez la version du nouveau package en lisant le package.jsonfichier dans son dossier.
  • Ouvrez votre projet package.jsonet définissez la même version pour l'endroit où il apparaît dans la dependenciespartie de votrepackage.json

Bien qu'il ne soit pas recommandé de le faire manuellement. Parfois, il est bon de comprendre comment les choses fonctionnent sous le capot, pour pouvoir réparer les choses. Je me suis retrouvé à le faire de temps en temps.

Aminadav Glickshtein
la source