Cli: [BUG] Mise à jour de npm - global échoue: npm ERR! global nécessite une option add ou rm

Créé le 14 oct. 2020  ·  44Commentaires  ·  Source: npm/cli

Comportement actuel:

$ npm install --global [email protected]

changed 1 package, and audited 1 package in 2s

found 0 vulnerabilities

$ npm update --global
npm ERR! global requires an add or rm option

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/felipesantos/.npm/_logs/2020-10-14T13_14_27_261Z-debug.log

$ npm update --global semver
npm ERR! global requires an add or rm option

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/felipesantos/.npm/_logs/2020-10-14T13_17_01_600Z-debug.log

$ cat /home/felipesantos/.npm/_logs/2020-10-14T13_14_27_261Z-debug.log
0 verbose cli [
0 verbose cli   '/home/felipesantos/.nvm/versions/node/v12.19.0/bin/node',
0 verbose cli   '/home/felipesantos/.nvm/versions/node/v12.19.0/bin/npm',
0 verbose cli   'update',
0 verbose cli   '--global'
0 verbose cli ]
1 info using [email protected]
2 info using [email protected]
3 timing config:load:defaults Completed in 1ms
4 timing config:load:file:/home/felipesantos/.nvm/versions/node/v12.19.0/lib/node_modules/npm/npmrc Completed in 1ms
5 timing config:load:builtin Completed in 1ms
6 timing config:load:cli Completed in 2ms
7 timing config:load:env Completed in 0ms
8 timing config:load:file:/mnt/c/Users/felip/.npmrc Completed in 1ms
9 timing config:load:project Completed in 3ms
10 timing config:load:file:/home/felipesantos/.npmrc Completed in 0ms
11 timing config:load:user Completed in 0ms
12 timing config:load:file:/home/felipesantos/.nvm/versions/node/v12.19.0/etc/npmrc Completed in 0ms
13 timing config:load:global Completed in 0ms
14 timing config:load:cafile Completed in 0ms
15 timing config:load:validate Completed in 0ms
16 timing config:load:setUserAgent Completed in 1ms
17 timing config:load:setEnvs Completed in 0ms
18 timing config:load Completed in 8ms
19 verbose npm-session 38aa94d0b0d83ff4
20 timing npm:load Completed in 14ms
21 timing arborist:ctor Completed in 0ms
22 timing command:update Completed in 2ms
23 verbose stack Error: global requires an add or rm option
23 verbose stack     at Arborist.buildIdealTree (/home/felipesantos/.nvm/versions/node/v12.19.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:185:29)
23 verbose stack     at Arborist.[loadTrees] (/home/felipesantos/.nvm/versions/node/v12.19.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:186:17)
23 verbose stack     at Arborist.reify (/home/felipesantos/.nvm/versions/node/v12.19.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:121:27)
23 verbose stack     at update (/home/felipesantos/.nvm/versions/node/v12.19.0/lib/node_modules/npm/lib/update.js:34:13)
23 verbose stack     at cmd (/home/felipesantos/.nvm/versions/node/v12.19.0/lib/node_modules/npm/lib/update.js:15:27)
23 verbose stack     at Object.[_runCmd] (/home/felipesantos/.nvm/versions/node/v12.19.0/lib/node_modules/npm/lib/npm.js:112:7)
23 verbose stack     at fn (/home/felipesantos/.nvm/versions/node/v12.19.0/lib/node_modules/npm/lib/npm.js:46:40)
23 verbose stack     at Object.<anonymous> (/home/felipesantos/.nvm/versions/node/v12.19.0/lib/node_modules/npm/lib/cli.js:56:7)
24 verbose cwd /mnt/c/Users/felip
25 verbose Linux 4.19.104-microsoft-standard
26 verbose argv "/home/felipesantos/.nvm/versions/node/v12.19.0/bin/node" "/home/felipesantos/.nvm/versions/node/v12.19.0/bin/npm" "update" "--global"
27 verbose node v12.19.0
28 verbose npm  v7.0.0
29 error global requires an add or rm option
30 verbose exit 1

Comportement prévisible:

Avant la version 7.0.0, exécuter npm update --global mettrait à jour tous les packages installés globalement qui sont obsolètes.

Étapes à suivre pour reproduire:

Installez un package global obsolète et essayez de mettre à jour tous les packages.

Environnement:

  • Système d'exploitation: Ubuntu 20.04.1
  • Nœud: 12.19.0
  • npm: 7.0.0
Bug Release 7.x

Commentaire le plus utile

La v7.0.9 ne semble pas non plus résoudre le problème.

Le bogue a été reconnu et un correctif est prévu pour une prochaine version.

Tous les 44 commentaires

Peut confirmer que cela se produit pour moi aussi ...

➜  event-centre npm -v 
7.0.0
➜  event-centre npm -g update
npm ERR! global requires an add or rm option

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/michael/.npm/_logs/2020-10-17T21_49_17_159Z-debug.log
➜  event-centre cat /Users/michael/.npm/_logs/2020-10-17T21_49_17_159Z-debug.log 
0 verbose cli [
0 verbose cli   '/Users/michael/.nvm/versions/node/v14.13.0/bin/node',
0 verbose cli   '/Users/michael/.nvm/versions/node/v14.13.0/bin/npm',
0 verbose cli   '-g',
0 verbose cli   'update'
0 verbose cli ]
1 info using [email protected]
2 info using [email protected]
3 timing config:load:defaults Completed in 1ms
4 timing config:load:file:/Users/michael/.nvm/versions/node/v14.13.0/lib/node_modules/npm/npmrc Completed in 0ms
5 timing config:load:builtin Completed in 0ms
6 timing config:load:cli Completed in 2ms
7 timing config:load:env Completed in 0ms
8 timing config:load:file:/Volumes/Developer/event-centre/.npmrc Completed in 0ms
9 timing config:load:project Completed in 1ms
10 timing config:load:file:/Users/michael/.npmrc Completed in 1ms
11 timing config:load:user Completed in 1ms
12 timing config:load:file:/Users/michael/.nvm/versions/node/v14.13.0/etc/npmrc Completed in 0ms
13 timing config:load:global Completed in 0ms
14 timing config:load:cafile Completed in 0ms
15 timing config:load:validate Completed in 0ms
16 timing config:load:setUserAgent Completed in 1ms
17 timing config:load:setEnvs Completed in 0ms
18 timing config:load Completed in 7ms
19 verbose npm-session 7a6ea29e573a5509
20 timing npm:load Completed in 12ms
21 timing arborist:ctor Completed in 0ms
22 timing command:update Completed in 3ms
23 verbose stack Error: global requires an add or rm option
23 verbose stack     at Arborist.buildIdealTree (/Users/michael/.nvm/versions/node/v14.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js:185:29)
23 verbose stack     at Arborist.[loadTrees] (/Users/michael/.nvm/versions/node/v14.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:186:17)
23 verbose stack     at Arborist.reify (/Users/michael/.nvm/versions/node/v14.13.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:121:27)
23 verbose stack     at update (/Users/michael/.nvm/versions/node/v14.13.0/lib/node_modules/npm/lib/update.js:34:13)
23 verbose stack     at cmd (/Users/michael/.nvm/versions/node/v14.13.0/lib/node_modules/npm/lib/update.js:15:27)
23 verbose stack     at Object.[_runCmd] (/Users/michael/.nvm/versions/node/v14.13.0/lib/node_modules/npm/lib/npm.js:112:7)
23 verbose stack     at fn (/Users/michael/.nvm/versions/node/v14.13.0/lib/node_modules/npm/lib/npm.js:46:40)
23 verbose stack     at Object.<anonymous> (/Users/michael/.nvm/versions/node/v14.13.0/lib/node_modules/npm/lib/cli.js:56:7)
24 verbose cwd /Volumes/Developer/event-centre
25 verbose Darwin 19.6.0
26 verbose argv "/Users/michael/.nvm/versions/node/v14.13.0/bin/node" "/Users/michael/.nvm/versions/node/v14.13.0/bin/npm" "-g" "update"
27 verbose node v14.13.0
28 verbose npm  v7.0.0
29 error global requires an add or rm option
30 verbose exit 1

npm update --global échoue: npm ERR! global nécessite une option add ou rm

Même erreur si je veux juste mettre à jour les packages globaux:

npm -g update

Ou

npm -g upgrade

Le voir avec la v7.0.1 sur Windows et Debian 10.

Ceux-ci ont fonctionné pour 6.x

semble être corrigé dans la v7.0.2

Je vois toujours le même problème avec la version 7.0.2

$ npm -v
7.0.2

$ npm -g mise à jour
npm ERR! global nécessite une option add ou rm

Je peux confirmer le même comportement dans npm 7.0.3 sous Windows 10 x64. Je viens de passer de npm @ 6 et j'ai eu cette surprise.

npm v 7.0.2 sur macOS nodejs v15 a le même problème.

npm ERR! global nécessite une option add ou rm
npm ERR! Un journal complet de cette exécution peut être trouvé dans:
npm ERR! /Users/user/.npm/_logs/2020-10-21T09_28_30_807Z-debug.log

[email protected] /Users/username/.nvm/versions/node/v15.0.1/lib/node_modules/npm

❯ npm update -g
npm ERR! global requires an add or rm option

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/username/.npm/_logs/2020-10-22T20_49_47_598Z-debug.log

Même problème pour moi. MacOS, npm v7.0.3. Utilisation de nvm.

Même. Sur MacOS, avec Brew.

I brew rm node et brew install node pour résoudre le problème de npm ls -g ne montrant aucun paquet.

Après cela, j'ai npm i npm@^6 -g puis j'ai lancé npm update -g (en fait, j'ai aussi fait npm update eslinst<strong i="12">@lastest</strong> -g premier)

J'ai ensuite lancé npm i npm<strong i="15">@latest</strong> -g et maintenant npm update -g ne signale pas d'erreur. (Il n'y a plus de mises à jour disponibles, mais cela semble corrigé pour moi, pour le moment.)

J'ai fait la même chose que @WraithKenny , mais avec la différence que je npm i npm -g sans spécifier @^6 et il s'installera par défaut __ver 6.14.8__, mais alors quand vous npm list -g , ça ne montre rien. J'ai ensuite réinstallé npm mais ver 7 >> npm i npm<strong i="9">@7</strong> -g et maintenant il n'y a pas d'erreurs et quand je npm list -g il montre tous les paquets installés globalement, et plus aucune erreur.

Étant donné que npm 7 n'est pas «le plus récent», vous ne voulez pas utiliser npm install -g npm une fois que vous êtes sur npm 7, car cela le rétrogradera à 6. Utilisez @7 pour vous assurer de rester sur v7.

J'ai rencontré ce problème aujourd'hui sur Win 10 après la mise à jour du nœud vers la version 15.0.1 et simultanément npm vers la version 7.0.5. Un rapide coup d'œil aux fichiers dans la trace de la pile du journal de débogage pointe vers les lignes suivantes (184-5) dans le fichier npmnode_modulesnpmnode_modules @ npmcli \ arboristlib \ arboristbuild-ideal-tree.js:

    if (!options.add && !options.rm && this[_global])
      return Promise.reject(new Error('global requires an add or rm option'))

C'est ma première plongée dans le code sous-jacent et le contexte autour de ces lignes ne me permet pas de savoir quel est leur objectif, mais elles mettent clairement un terme à toute action de mise à jour globale autre que add ou rm.

brew install nodejs
npm update --global --quiet
npm ERR! global requires an add or rm option

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/xxxxxxxx/.npm/_logs/2020-10-24T04_20_28_320Z-debug.log

@WraithKenny @alaadahmed Vous avez probablement tous les deux deux répertoires globaux node_modules maintenant, non?

1) /usr/local/lib/node_modules (avec npm 6.14.8 et tous vos modules globaux précédents)

et

2) /usr/local/Cellar/node/15.0.1/lib/node_modules (avec npm 7.0.5 et zéro module global (encore))

Et appeler npm utilisera 6.14.8 mais affichera les modules dans /usr/local/Cellar/node/15.0.1/lib/node_modules , non?

@ErikAbele Oui, je l'ai découvert plus tard.

@ErikAbele Oui, je l'ai découvert plus tard.

Oui, voir la même chose ici sur OSX :-( J'ai tout trié sur ma boîte Ubuntu 20.04 mais dès que j'essaye de mettre à jour npm vers 7.0.5 sur OSX, cela change mon répertoire global node_modules en /usr/local/Cellar/node/15.0.1/... :

Ubuntu 20.04:

erik<strong i="11">@RaspberryPi</strong>:~$ which npm 
/usr/bin/npm
erik<strong i="12">@RaspberryPi</strong>:~$ npm --version
7.0.5
erik<strong i="13">@RaspberryPi</strong>:~$ npm list -g
/usr/lib
├── @codefaktor/[email protected] -> /home/erik/repos/codefaktor/qubot
├── [email protected]
├── [email protected]
└── [email protected]

Mac OS X:

[erik<strong i="17">@Odin</strong> ~]% which npm                                                                                                                                                                                                           14:26:48
/usr/local/bin/npm
[erik<strong i="18">@Odin</strong> ~]% npm --version                                                                                                                                                                                                       14:32:30
7.0.3
[erik<strong i="19">@Odin</strong> ~]% npm list -g                                                                                                                                                                                                         14:32:36
/usr/local/lib
├── @codefaktor/[email protected] -> /Users/erik/Workzone/Projects/codefaktor.de/qubot
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

Et dès que je fais un npm install npm<strong i="22">@7</strong> -g sur ce dernier, je reçois tout foiré à nouveau: - / Donc si quelqu'un sait comment résoudre ça là-bas, j'apprécierais un ping, TIA! ;-)

OK, j'ai fait ce qui suit et cela a résolu le problème du chemin nouvellement créé pour les packages globaux:

1- npm config set prefix '/usr/local' >> cela définira le chemin des packages globaux installés et recherchera le dossier lib dans ce chemin, puis installera n'importe quel package dans le dossier node_modules intérieur de lib .. donc pour macOS, il trouvera tous vos packages installés dans /usr/local/lib/node_modules >> mais cela fonctionnera avec [email protected] non 7.0.3 donc vous devez vérifier lesquels version de npm que vous avez.
Après avoir mis à niveau le nœud vers 15.0.1 il a installé [email protected] donc j'ai configuré le chemin du préfixe comme indiqué à l'étape __1__ puis et seulement ensuite j'ai mis à jour npm vers 7.0.5 avec npm i npm -g
Maintenant, quand je npm list -g il montre tous mes paquets installés auparavant. De plus, npm update -g fonctionne bien.

Je pense que pour ubuntu, vous devez créer npm config set prefix '/usr' pour qu'il recherchera le dossier lib sur ce chemin, et installera tout package à l'intérieur de node_modules sous lib donc le chemin complet sera /usr/lib/node_modules

__update__: cela ne fonctionne toujours pas avec npm @ 7 .. mais fonctionne avec npm @ 6 et node 15.0.1 avec le chemin des packages fixé à /usr/local/lib/node_modules
Je souffre toujours avec npm@7 sous node 15.0.1

Excellent, cela a finalement fait l'affaire - merci!

(Bizarre, npm config get prefix avait déjà ce chemin mais le définir une autre fois a vraiment empêché la création de la deuxième structure de répertoire.)

@ErikAbele OK maintenant quelle version de npm vous avez?! Et si npm@7 pouvez-vous gagner npm update -g ?!

J'avais [email protected] (fourni avec la nouvelle installation de [email protected]), puis j'ai ajouté le préfixe et mis à jour à [email protected] via npm install npm<strong i="7">@7</strong> -g et j'ai maintenant 7.0.5 dans / usr / local / lib / ...

npm update -g ne fonctionne toujours pas mais npm outdated -g fonctionne pour le bon chemin et je peux simplement faire par exemple npm install eslint<strong i="12">@latest</strong> -g pour mettre à jour des paquets spécifiques avec le dernier npm au bon chemin. C'est tout ce dont j'ai besoin pour le moment (et jusqu'à ce que npm soit corrigé en amont) ...

Je suppose que tant que 7.0.5 n'est pas marqué comme étant le plus récent (et à la place 6.14.8 est), nous devrons vivre avec cela ...: - /

Je reviens à [email protected] mais j'utilise node 15.0.1 , et quand ils marquent npm@7 comme __latest__, je le met à jour.

Bonjour à tous. J'ai le même problème.

Si je fais "npm upadate -g", cela me donne "global nécessite une option add ou rm" et si je fais "npm list -g", cela me donne " [email protected] ". Si je rétrograde à npm 6, le problème persiste.

Mon vrai problème est que de nombreux packages sont installés dans le monde et je ne me souviens pas de tous. Il existe un moyen de les récupérer?

Je suis sur macOS Mojave.

Vous pouvez lire ceci et cela résoudra votre problème: https://github.com/npm/cli/issues/1962#issuecomment -715911549

Nodejs 15.0.1
npm 7.0.3

Utilisation de "npm set config", pointant vers mon dossier de profil utilisateur. Il pointe maintenant vers le bon dossier modules, mais maintenant, en exécutant une requête obsolète (npm obsolète -g), il répertorie bien plus de paquets obsolètes.

image

et la liste continue pour beaucoup plus de paquets ...

Je rencontre tous les problèmes sur ce fil 😞. . . rétrograder à v6.14.8 jusqu'à ce que ces problèmes soient résolus

npm 7.0.6 est sorti et le même problème persiste. ; o (

Un correctif officiel est-il encore en cours d'élaboration? Pour le moment, je ne peux pas mettre à jour mes packages globaux sans les réinstaller.

Cela se produit-il toujours sur la version 7.0.7?

NPM v7.0.8 est sorti et le bogue existe toujours. S'il vous plaît, faites quelque chose.

Potentiel de contournement, Mac:
Utilisez n pour installer, puis passez à une nouvelle version de nœud / npm.
https://github.com/tj/n
Puis revenez en arrière et
sudo npm -g update devrait fonctionner

Potentiel de contournement, Mac:
Utilisez n pour installer, puis passez à une nouvelle version de nœud / npm.
https://github.com/tj/n
Puis revenez en arrière et
sudo npm -g update devrait fonctionner

Quelle est la sortie de sudo npm --version ?

@felipecrs cela dépendra de la version installée en utilisant n.
Mine: npm 6.14.8 lorsque le nœud est v12.13.1

Potentiel de contournement, Mac:
Utilisez n pour installer, puis passez à une nouvelle version de nœud / npm.
https://github.com/tj/n
Puis revenez en arrière et
sudo npm -g update devrait fonctionner

Quelle est la sortie de sudo npm --version ?

@felipecrs cela dépendra de la version installée en utilisant n.
Mine: npm 6.14.8 lorsque le nœud est v12.13.1

Essayez npm v7.0.8?

Essayez npm v7.0.8?

Le problème persiste :-(

Ce problème est de retour avec la mise à jour des homebrews d'aujourd'hui

Pour résoudre ce problème, c'est un problème avec npm v7, quelle que soit la version du nœud (telle que 15).

Peut confirmer que ce problème persiste ... Avons-nous entendu parler d'un correctif en cours d'élaboration? Je viens de recevoir un nouvel ordinateur de travail la semaine dernière et je n'ai pas eu de chance :(

@felipecrs et al: oui, vous avez raison, c'est un problème avec juste npm @ 7 - je viens d'essayer avec la dernière version 7.0.8 et le problème persiste.

J'ai complètement supprimé le dossier du module Node et npm dans mon% USERAPPDATA%.
Nœud réinstallé (15.0.1).
Npm mis à jour à 7.07.

1) npm obsolète -g
donne une liste de nombreux modules qui sont obsolètes

2) liste npm -g --depth = 0
Maintenant, il répertorie les modules (avant de ne montrer que npm)

3) mise à jour npm npm -g
(pour mettre à jour npm vers 7.0.8)
npm ERR! global nécessite une option add ou rm

Conclusion:
la réinstallation de tout corrige quelque chose mais l'erreur npm persiste. Je pense que ce n’est pas non plus une solution viable.

La v7.0.9 ne semble pas non plus résoudre le problème.

La v7.0.9 ne semble pas non plus résoudre le problème.

Le bogue a été reconnu et un correctif est prévu pour une prochaine version.

Merci d'avoir examiné cela, @isaacs!

Yay! Merci @isaacs pour cc0c6e1 .

Merci beaucoup d'avoir résolu ce problème. Quand pensez-vous que la prochaine mise à jour sera publiée avec ce correctif?

Cette page vous a été utile?
0 / 5 - 0 notes