Cli: [BUG] pembaruan npm - global gagal: npm ERR! global membutuhkan opsi tambah atau rm

Dibuat pada 14 Okt 2020  ·  44Komentar  ·  Sumber: npm/cli

Perilaku Saat Ini:

$ 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

Perilaku yang Diharapkan:

Sebelum v7.0.0, menjalankan npm update --global akan memperbarui semua paket yang diinstal secara global yang sudah usang.

Langkah Untuk Mereproduksi:

Instal paket global yang kedaluwarsa, dan coba perbarui semua paket.

Lingkungan Hidup:

  • OS: Ubuntu 20.04.1
  • Node: 12.19.0
  • npm: 7.0.0
Bug Release 7.x

Komentar yang paling membantu

Sepertinya v7.0.9 juga tidak akan memperbaiki masalah ini.

Bug telah diketahui dan perbaikan dijadwalkan untuk rilis mendatang.

Semua 44 komentar

Dapat mengonfirmasi bahwa ini juga terjadi pada saya ...

➜  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 gagal: npm ERR! global membutuhkan opsi tambah atau rm

Kesalahan yang sama jika saya hanya ingin memperbarui paket global:

npm -g update

Atau

npm -g upgrade

Melihatnya dengan v7.0.1 di Windows dan Debian 10.

Ini bekerja untuk 6.x

tampaknya diperbaiki di v7.0.2

Saya masih melihat masalah yang sama dengan 7.0.2

$ npm -v
7.0.2

$ npm -g pembaruan
npm ERR! global membutuhkan opsi tambah atau rm

Saya dapat mengonfirmasi perilaku yang sama di npm 7.0.3 pada Windows 10 x64. Baru saja meningkatkan dari npm @ 6 dan mendapatkan kejutan ini.

npm v 7.0.2 di macOS nodejs v15 memiliki masalah yang sama.

npm ERR! global membutuhkan opsi tambah atau rm
npm ERR! Log lengkap proses ini dapat ditemukan di:
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

Masalah yang sama bagi saya. MacOS, npm v7.0.3. Menggunakan nvm.

Sama. Di MacOS, dengan Brew.

Saya brew rm node dan brew install node untuk memperbaiki masalah npm ls -g tidak menampilkan paket apa pun.

Setelah itu, saya npm i npm@^6 -g lalu lari npm update -g (sebenarnya, saya juga melakukan npm update eslinst<strong i="12">@lastest</strong> -g dulu)

Saya kemudian menjalankan npm i npm<strong i="15">@latest</strong> -g dan sekarang npm update -g tidak melaporkan kesalahan. (Tidak ada pembaruan yang tersedia lagi, tetapi tampaknya sudah diperbaiki untuk saya, untuk saat ini.)

Saya melakukan hal yang sama seperti @WraithKenny , tetapi dengan perbedaan bahwa saya npm i npm -g tanpa menentukan @^6 dan itu akan diinstal secara default __ver 6.14.8__, tetapi kemudian ketika Anda npm list -g , itu tidak menunjukkan apa-apa. Saya kemudian menginstal ulang npm tetapi ver 7 >> npm i npm<strong i="9">@7</strong> -g dan sekarang tidak ada kesalahan dan ketika saya npm list -g itu menunjukkan semua paket yang diinstal secara global, dan tidak ada kesalahan lagi.

Karena npm 7 bukan "terbaru", Anda tidak ingin menggunakan npm install -g npm setelah Anda menggunakan npm 7, karena itu akan menurunkannya ke 6. Gunakan @7 untuk memastikan Anda tetap tinggal di v7.

Saya mengalami masalah ini hari ini di Win 10 setelah memperbarui node ke versi 15.0.1 dan secara bersamaan npm ke versi 7.0.5. Tampilan sekilas file di jejak tumpukan log debug menunjuk ke baris berikut (184-5) di file 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'))

Ini adalah pertama kalinya saya mempelajari kode yang mendasarinya dan tidak jelas bagi saya dari konteks di sekitar baris ini apa tujuan yang dimaksudkan, tetapi mereka jelas menghentikan tindakan pembaruan global apa pun selain add atau 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 Anda berdua mungkin memiliki dua direktori node_modules global sekarang, bukan?

1) /usr/local/lib/node_modules (dengan npm 6.14.8 dan semua modul global Anda sebelumnya)

dan

2) /usr/local/Cellar/node/15.0.1/lib/node_modules (dengan npm 7.0.5 dan nol modul global (belum))

Dan memanggil npm akan menggunakan 6.14.8 tetapi menampilkan modul dalam /usr/local/Cellar/node/15.0.1/lib/node_modules , bukan?

@ErikAbele Ya, saya menemukan ini nanti.

@ErikAbele Ya, saya menemukan ini nanti.

Aye, melihat hal yang sama di sini di OSX :-( Saya mendapatkan semuanya diurutkan di kotak Ubuntu 20.04 saya tetapi segera setelah saya mencoba memperbarui npm ke 7.0.5 di OSX itu mengalihkan direktori node_modules global saya ke /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]

MacOS 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]

Dan segera setelah saya melakukan npm install npm<strong i="22">@7</strong> -g untuk yang terakhir saya mendapatkan semuanya kacau lagi: - / Jadi jika ada yang tahu bagaimana memperbaikinya di sana saya akan menghargai ping, TIA! ;-)

OK saya melakukan hal berikut dan menyelesaikan masalah jalur yang baru dibuat untuk paket global:

1- npm config set prefix '/usr/local' >> ini akan mengatur jalur untuk paket yang diinstal global dan akan mencari folder lib di dalam jalur ini dan kemudian akan menginstal paket apa pun di folder node_modules di dalam lib .. jadi untuk macOS itu akan menemukan semua paket yang Anda instal di dalam /usr/local/lib/node_modules >> tetapi ini akan bekerja dengan [email protected] bukan 7.0.3 jadi Anda perlu memeriksa yang mana versi npm yang Anda miliki.
Setelah saya mengupgrade node ke 15.0.1 itu menginstal [email protected] jadi saya mengkonfigurasi jalur awalan seperti yang ditunjukkan pada langkah __1__ lalu dan baru kemudian saya memperbarui npm ke 7.0.5 dengan npm i npm -g
Sekarang ketika saya npm list -g itu menunjukkan semua paket saya yang diinstal sebelumnya. Juga npm update -g berfungsi dengan baik.

Saya pikir untuk ubuntu Anda perlu membuat npm config set prefix '/usr' sehingga akan mencari folder lib di jalur itu, dan akan menginstal paket apa pun di dalam node_modules bawah lib jadi jalur lengkap akan menjadi /usr/lib/node_modules

__update__: masih tidak berfungsi dengan npm @ 7 .. tetapi berfungsi dengan npm @ 6 dan node 15.0.1 dengan jalur ke paket yang ditetapkan ke /usr/local/lib/node_modules
Saya masih menderita dengan npm@7 bawah node 15.0.1

Luar biasa, ini akhirnya berhasil - terima kasih!

(Aneh, npm config get prefix sudah memiliki jalur itu tetapi menyetelnya di lain waktu benar-benar mencegah pembuatan struktur direktori kedua.)

@ErikAbele Oke sekarang versi npm mana yang Anda miliki ?! Dan jika npm@7 dapatkah Anda menghasilkan npm update -g ?!

Saya punya [email protected] (yang datang dengan instalasi baru [email protected]), kemudian saya menambahkan awalan dan memperbarui ke [email protected] melalui npm install npm<strong i="7">@7</strong> -g dan sekarang saya memiliki 7.0.5 di / usr / local / lib / ...

npm update -g masih tidak berfungsi tetapi npm outdated -g berfungsi untuk jalur yang benar dan saya dapat melakukannya misalnya npm install eslint<strong i="12">@latest</strong> -g untuk memperbarui paket tertentu dengan npm terbaru di jalur yang benar. Hanya itu yang saya butuhkan untuk saat ini (dan sampai npm telah diperbaiki di hulu) ...

Saya kira selama 7.0.5 tidak ditandai sebagai yang terbaru (dan sebaliknya 6.14.8) kita harus menerima itu ...: - /

Saya mengembalikan ke [email protected] tetapi menggunakan node 15.0.1 , dan ketika mereka menandai npm@7 sebagai __latest__ akan memutakhirkannya.

Selamat pagi semuanya Saya memiliki masalah yang sama.

Jika saya melakukan "npm upadate -g" itu memberi saya "global memerlukan opsi add atau rm" dan jika saya melakukan "npm list -g" itu memberi saya ' [email protected] '. Jika saya menurunkan versi ke npm 6, masalah tetap ada.

Masalah saya sebenarnya adalah saya memiliki banyak paket yang diinstal secara global dan saya tidak ingat semuanya. Ada cara untuk memulihkannya?

Saya menggunakan macOS Mojave.

Anda dapat membaca ini dan ini akan menyelesaikan masalah Anda: https://github.com/npm/cli/issues/1962#issuecomment -715911549

Nodejs 15.0.1
npm 7.0.3

Menggunakan "npm set config", menunjuk ke folder profil pengguna saya. Sekarang menunjuk ke folder modul yang benar, tapi sekarang, menjalankan permintaan yang sudah ketinggalan zaman (npm outdated -g) itu daftar jauh lebih banyak paket usang.

image

dan daftar berlanjut untuk lebih banyak paket ...

Saya mengalami semua masalah di utas ini 😞. . . menurunkan versi kembali ke v6.14.8 hingga masalah ini teratasi

npm 7.0.6 keluar dan masalah yang sama masih berlanjut. ;Hai(

Apakah perbaikan resmi sedang dikerjakan? Saat ini saya tidak dapat memperbarui paket global saya tanpa menginstal ulang.

Apakah ini masih terjadi di v7.0.7?

NPM v7.0.8 telah keluar dan bug masih ada. Tolong, lakukan sesuatu tentang itu.

Potensi Pekerjaan Sekitar, Mac:
Gunakan n untuk menginstal lalu beralih ke versi node / npm baru.
https://github.com/tj/n
Kemudian beralih kembali dan
sudo npm -g update seharusnya berfungsi

Potensi Pekerjaan Sekitar, Mac:
Gunakan n untuk menginstal lalu beralih ke versi node / npm baru.
https://github.com/tj/n
Kemudian beralih kembali dan
sudo npm -g update seharusnya berfungsi

Apa keluaran dari sudo npm --version ?

@felipecrs itu akan tergantung pada versi yang diinstal menggunakan n.
Milik saya: npm 6.14.8 ketika node adalah v12.13.1

Potensi Pekerjaan Sekitar, Mac:
Gunakan n untuk menginstal lalu beralih ke versi node / npm baru.
https://github.com/tj/n
Kemudian beralih kembali dan
sudo npm -g update seharusnya berfungsi

Apa keluaran dari sudo npm --version ?

@felipecrs itu akan tergantung pada versi yang diinstal menggunakan n.
Milik saya: npm 6.14.8 ketika node adalah v12.13.1

Coba npm v7.0.8?

Coba npm v7.0.8?

Masalah terus berlanjut :-(

Masalah ini kembali lagi dengan peningkatan versi homebrew hari ini

Untuk menyelesaikannya, ini adalah masalah dengan npm v7 apa pun versi node (seperti 15).

Dapatkah mengonfirmasi masalah ini berlanjut ... Pernahkah kami mendengar bahwa perbaikan sedang dikerjakan? Baru saja mendapat komputer kerja baru minggu lalu dan belum beruntung :(

@felipecrs dkk: ya, Anda benar, ini adalah masalah hanya dengan npm @ 7 - Saya baru saja mencoba dengan versi terbaru 7.0.8 dan masalah tetap ada.

Saya benar-benar menghapus folder modul Node dan npm di% USERAPPDATA% saya.
Node diinstal ulang (15.0.1).
Npm ditingkatkan menjadi 7.07.

1) npm usang -g
memberikan daftar banyak modul yang sudah ketinggalan zaman

2) daftar npm -g --depth = 0
Sekarang daftar modul (sebelumnya hanya ditampilkan npm)

3) npm perbarui npm -g
(untuk memperbarui npm ke 7.0.8)
npm ERR! global membutuhkan opsi tambah atau rm

Kesimpulan:
menginstal ulang semuanya memperbaiki sesuatu tetapi kesalahan npm tetap ada. Saya pikir ini juga bukan cara yang layak.

Sepertinya v7.0.9 juga tidak akan memperbaiki masalah ini.

Sepertinya v7.0.9 juga tidak akan memperbaiki masalah ini.

Bug telah diketahui dan perbaikan dijadwalkan untuk rilis mendatang.

Terima kasih telah melihat ini, @isaacs!

Yay! Terima kasih @isaacs untuk cc0c6e1 .

Terima kasih banyak telah memperbaiki ini. Kapan Anda mengharapkan pembaruan berikutnya untuk dirilis dengan perbaikan ini?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat