Cli: [BUG] npm update --global schlÀgt fehl: npm ERR! global erfordert die Option add oder rm

Erstellt am 14. Okt. 2020  Â·  44Kommentare  Â·  Quelle: npm/cli

Aktuelles Verhalten:

$ 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

Erwartetes Verhalten:

Vor Version 7.0.0 wurden durch AusfĂŒhren von npm update --global alle global installierten Pakete aktualisiert, die veraltet sind.

Schritte zum Reproduzieren:

Installieren Sie ein veraltetes globales Paket und versuchen Sie, alle Pakete zu aktualisieren.

Umgebung:

  • Betriebssystem: Ubuntu 20.04.1
  • Knoten: 12.19.0
  • npm: 7.0.0
Bug Release 7.x

Hilfreichster Kommentar

Sieht nicht so aus, als wĂŒrde v7.0.9 das Problem ebenfalls beheben.

Der Fehler wurde erkannt und eine Korrektur ist fĂŒr eine bevorstehende Version geplant.

Alle 44 Kommentare

Kann bestĂ€tigen, dass dies auch fĂŒr mich passiert ...

➜  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 schlÀgt fehl: npm ERR! global erfordert die Option add oder rm

Gleicher Fehler, wenn ich nur globale Pakete aktualisieren möchte:

npm -g update

Oder

npm -g upgrade

Sehen Sie es mit v7.0.1 unter Windows und Debian 10.

Diese funktionierten fĂŒr 6.x.

scheint in v7.0.2 behoben zu sein

Ich sehe immer noch das gleiche Problem mit 7.0.2

$ npm -v
7.0.2

$ npm -g Update
npm ERR! global erfordert die Option add oder rm

Ich kann das gleiche Verhalten in npm 7.0.3 unter Windows 10 x64 bestÀtigen. Ich habe gerade ein Upgrade von

npm v 7.0.2 unter macOS nodejs v15 hat das gleiche Problem.

npm ERR! global erfordert die Option add oder rm
npm ERR! Ein vollstÀndiges Protokoll dieses Laufs finden Sie in:
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

Gleiches Problem fĂŒr mich. MacOS, npm v7.0.3. Mit nvm.

Gleich. Unter MacOS mit Brew.

I brew rm node und brew install node , um das Problem zu beheben, dass npm ls -g keine Pakete anzeigt.

Danach habe ich npm i npm@^6 -g dann npm update -g (tatsÀchlich habe ich auch zuerst npm update eslinst<strong i="12">@lastest</strong> -g )

Ich habe dann npm i npm<strong i="15">@latest</strong> -g und jetzt meldet npm update -g keinen Fehler. (Es sind keine Updates mehr verfĂŒgbar, aber es scheint fĂŒr mich vorerst behoben zu sein.)

Ich habe das gleiche getan wie npm i npm -g ohne Angabe von @^6 und es wird standardmĂ€ĂŸig __ver 6.14.8__ installiert, aber dann, wenn Sie npm list -g , es zeigt nichts. Ich habe dann npm neu installiert, aber Version 7 >> npm i npm<strong i="9">@7</strong> -g und jetzt gibt es keine Fehler und wenn ich npm list -g habe, werden alle global installierten Pakete und keine Fehler mehr angezeigt.

Da npm 7 nicht „aktuell“ ist, möchten Sie npm install -g npm wenn Sie npm 7 verwenden, da dies zu einem Downgrade auf 6 fĂŒhrt. Verwenden Sie @7 um sicherzustellen, dass Sie bleiben auf v7.

Ich bin heute auf dieses Problem unter Win 10 gestoßen, nachdem der Knoten auf Version 15.0.1 und gleichzeitig npm auf Version 7.0.5 aktualisiert wurde. Ein kurzer Blick auf die Dateien im Trace des Debug-Protokollstapels zeigt auf die folgenden Zeilen (184-5) in der Datei 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'))

Dies ist meine erste Untersuchung des zugrunde liegenden Codes, und aus dem Kontext um diese Zeilen ist mir nicht klar, welchen Zweck sie haben, aber sie verhindern eindeutig alle globalen Aktualisierungsaktionen außer add oder 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 Ihr beide habt jetzt wahrscheinlich zwei globale node_modules-Verzeichnisse, oder?

1) /usr/local/lib/node_modules (mit npm 6.14.8 und all Ihren vorherigen globalen Modulen)

und

2) /usr/local/Cellar/node/15.0.1/lib/node_modules (mit npm 7.0.5 und null globalen Modulen (noch))

Und wenn Sie npm aufrufen, wird 6.14.8 verwendet, aber die Module werden in /usr/local/Cellar/node/15.0.1/lib/node_modules angezeigt, oder?

@ErikAbele Ja, das habe ich spÀter herausgefunden.

@ErikAbele Ja, das habe ich spÀter herausgefunden.

Ja, ich sehe dasselbe hier unter OSX :-( Ich habe alles auf meiner Ubuntu 20.04-Box sortiert, aber sobald ich versuche, npm unter OSX auf 7.0.5 zu aktualisieren, wechselt mein globales node_modules-Verzeichnis auf /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]

Und sobald ich ein npm install npm<strong i="22">@7</strong> -g fĂŒr letzteres mache, wird alles wieder durcheinander gebracht: - / Wenn also jemand weiß, wie man das dort drĂŒben behebt, wĂŒrde ich mich ĂŒber einen Ping freuen, TIA! ;-);

OK, ich habe Folgendes getan und das Problem des neu erstellten Pfads fĂŒr globale Pakete gelöst:

1- npm config set prefix '/usr/local' >> Hiermit wird der Pfad fĂŒr global installierte Pakete festgelegt und nach dem Ordner lib in diesem Pfad gesucht. Anschließend wird jedes Paket im Ordner node_modules innerhalb von lib installiert /usr/local/lib/node_modules >> gefunden, aber dies funktioniert mit [email protected] nicht 7.0.3 sodass Sie ĂŒberprĂŒfen mĂŒssen, welche Version von npm, die Sie haben.
Nachdem ich aktualisierte Knoten zu 15.0.1 installierte [email protected] ich so projektiert I PrĂ€fixpfad wie gezeigt in Schritt __1__ dann und nur dann zu NPM 7.0.5 mit aktualisierter npm i npm -g
Wenn ich jetzt npm list -g habe, werden alle meine zuvor installierten Pakete angezeigt. Auch npm update -g funktioniert gut.

Ich denke, fĂŒr Ubuntu mĂŒssen Sie npm config set prefix '/usr' damit es unter diesem Pfad nach lib Ordner sucht und jedes Paket in node_modules unter lib installiert Der vollstĂ€ndige Pfad lautet /usr/lib/node_modules

__update__: Es funktioniert immer noch nicht mit npm @ 7 .. aber mit npm @ 6 und node 15.0.1 wobei der Pfad zu Paketen auf /usr/local/lib/node_modules
Ich leide immer noch mit npm@7 unter node 15.0.1

Ausgezeichnet, das hat endlich geklappt - danke!

(Seltsam, npm config get prefix hatte diesen Pfad bereits, aber ein anderes Setzen verhinderte wirklich die Erstellung der zweiten Verzeichnisstruktur.)

@ErikAbele OK, welche Version von npm hast du jetzt?! Und wenn npm@7 können Sie npm update -g ?!

Ich hatte [email protected] (das mit der Neuinstallation von [email protected] geliefert wurde), dann habe ich das PrĂ€fix hinzugefĂŒgt und ĂŒber npm install npm<strong i="7">@7</strong> -g auf [email protected] aktualisiert und habe jetzt 7.0.5 in / usr / local / lib / ...

npm update -g funktioniert immer noch nicht, aber npm outdated -g funktioniert fĂŒr den richtigen Pfad und ich kann einfach zB npm install eslint<strong i="12">@latest</strong> -g tun, um bestimmte Pakete mit der neuesten npm am richtigen Pfad zu aktualisieren. Das ist alles was ich jetzt brauche (und bis npm stromaufwĂ€rts repariert wurde) ...

Ich denke, solange 7.0.5 nicht als aktuell markiert ist (und stattdessen 6.14.8), mĂŒssen wir damit leben ...: - /

Ich rolle auf [email protected] , verwende aber node 15.0.1 , und wenn sie npm@7 als __latest__ markieren, wird es aktualisiert.

Guten Morgen ĂŒberhaupt. Ich habe das gleiche Problem.

Wenn ich "npm upadate -g" mache, bekomme ich "global erfordert eine Add- oder rm-Option" und wenn ich "npm list -g" mache , gebe ich '

Mein eigentliches Problem ist, dass ich viele Pakete global installiert hatte und mich nicht an alle erinnere. Gibt es eine Möglichkeit, sie wiederherzustellen?

Ich bin auf macOS Mojave.

Sie können dies lesen und es wird Ihr Problem lösen: https://github.com/npm/cli/issues/1962#issuecomment -715911549

Knoten 15.0.1
npm 7.0.3

Mit "npm set config", zeigt auf meinen Benutzerprofilordner. Er zeigt jetzt auf den richtigen Modulordner, aber jetzt, wenn er eine veraltete Anforderung (npm veraltet -g) ausfĂŒhrt, listet er viel mehr veraltete Pakete auf.

image

und die Liste geht weiter fĂŒr viel mehr Pakete ...

Ich stoße auf alle Probleme in diesem Thread 😞. . . Herabstufen auf v6.14.8 bis diese Probleme behoben sind

npm 7.0.6 ist out und das gleiche Problem besteht weiterhin. ;Ö(

Wird noch an einem offiziellen Fix gearbeitet? Im Moment kann ich meine globalen Pakete nicht aktualisieren, ohne sie erneut zu installieren.

Passiert dies immer noch in Version 7.0.7?

NPM v7.0.8 ist raus und der Fehler besteht immer noch. Bitte tun Sie etwas dagegen.

Mögliche Problemumgehung, Mac:
Verwenden Sie n zur Installation und wechseln Sie dann zu einer neuen Node / npm-Version.
https://github.com/tj/n
Dann zurĂŒckschalten und
sudo npm -g update sollte funktionieren

Mögliche Problemumgehung, Mac:
Verwenden Sie n zur Installation und wechseln Sie dann zu einer neuen Node / npm-Version.
https://github.com/tj/n
Dann zurĂŒckschalten und
sudo npm -g update sollte funktionieren

Was ist die Ausgabe von sudo npm --version ?

@felipecrs es wird von der Version abhÀngen, die mit n installiert wurde.
Meins: npm 6.14.8, wenn der Knoten v12.13.1 ist

Mögliche Problemumgehung, Mac:
Verwenden Sie n zur Installation und wechseln Sie dann zu einer neuen Node / npm-Version.
https://github.com/tj/n
Dann zurĂŒckschalten und
sudo npm -g update sollte funktionieren

Was ist die Ausgabe von sudo npm --version ?

@felipecrs es wird von der Version abhÀngen, die mit n installiert wurde.
Meins: npm 6.14.8, wenn der Knoten v12.13.1 ist

Versuchen Sie es mit npm v7.0.8?

Versuchen Sie es mit npm v7.0.8?

Problem bleibt bestehen :-(

Dieses Problem ist mit dem heutigen Homebrew-Upgrade wieder aufgetreten

Um dies zu klÀren, ist es ein Problem mit npm v7, unabhÀngig von der Knotenversion (z. B. 15).

Kann bestĂ€tigen, dass dieses Problem weiterhin besteht ... Haben wir von einem Fix gehört, an dem gearbeitet wird? Habe letzte Woche einen neuen Arbeitscomputer bekommen und hatte kein GlĂŒck :(

@felipecrs et al.: Ja, Sie haben Recht, es ist ein Problem mit nur npm @ 7 - Ich habe es gerade mit der neuesten Version 7.0.8 versucht und das Problem besteht weiterhin.

Ich habe den Knoten- und npm-Modulordner in meinem% USERAPPDATA% vollstÀndig entfernt.
Neu installierter Knoten (15.0.1).
Upgrade von npm auf 7.07.

1) npm veraltet -g
gibt eine Liste vieler Module an, die veraltet sind

2) npm list -g --depth = 0
Jetzt werden die Module aufgelistet (bevor nur npm angezeigt wurde).

3) npm update npm -g
(um npm auf 7.0.8 zu aktualisieren)
npm ERR! global erfordert die Option add oder rm

Fazit:
Durch die Neuinstallation wird alles behoben, aber der npm-Fehler bleibt bestehen. Ich denke, dass dies auch kein praktikabler Weg ist.

Sieht nicht so aus, als wĂŒrde v7.0.9 das Problem ebenfalls beheben.

Sieht nicht so aus, als wĂŒrde v7.0.9 das Problem ebenfalls beheben.

Der Fehler wurde erkannt und eine Korrektur ist fĂŒr eine bevorstehende Version geplant.

Vielen Dank, dass Sie sich damit befasst haben, @isaacs!

Yay! Vielen Dank an @isaacs fĂŒr cc0c6e1 .

Vielen Dank fĂŒr die Behebung. Wann wird das nĂ€chste Update mit diesem Fix veröffentlicht?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen