Cli: [ОШИБКА] npm update --global fails: npm ERR! global требует опции add или rm

Созданный на 14 окт. 2020  ·  44Комментарии  ·  Источник: npm/cli

Текущее поведение:

$ 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

Ожидаемое поведение:

До версии 7.0.0 запуск npm update --global обновлял все установленные глобально пакеты, которые устарели.

Действия по воспроизведению:

Установите устаревший глобальный пакет и попробуйте обновить все пакеты.

Окружающая обстановка:

  • ОС: Ubuntu 20.04.1
  • Узел: 12.19.0
  • npm: 7.0.0
Bug Release 7.x

Самый полезный комментарий

Не похоже, что версия 7.0.9 решит проблему.

Ошибка подтверждена, и в следующем выпуске запланировано исправление.

Все 44 Комментарий

Могу подтвердить, что это происходит и со мной ...

➜  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 fails: npm ERR! global требует опции add или rm

Та же ошибка, если я просто хочу обновить глобальные пакеты:

npm -g update

Или же

npm -g upgrade

Увидеть это с v7.0.1 в Windows и Debian 10.

Они работали для 6.x

похоже, исправлено в v7.0.2

Я все еще вижу ту же проблему с 7.0.2

$ npm -v
7.0.2

$ npm -g обновить
npm ERR! global требует опции add или rm

Я могу подтвердить то же поведение в npm 7.0.3 в Windows 10 x64. Только что обновился с npm @ 6 и получил этот сюрприз.

npm v 7.0.2 на macOS nodejs v15 имеет ту же проблему.

npm ERR! global требует опции add или rm
npm ERR! Полный журнал этого запуска можно найти в:
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

То же самое для меня. MacOS, npm v7.0.3. Используя nvm.

Одна и та же. В MacOS с Brew.

I brew rm node и brew install node чтобы исправить проблему, когда npm ls -g не показывает никаких пакетов.

После этого я npm i npm@^6 -g запустил npm update -g (на самом деле, я также сначала сделал npm update eslinst<strong i="12">@lastest</strong> -g )

Затем я запустил npm i npm<strong i="15">@latest</strong> -g и теперь npm update -g не сообщает об ошибке. (Обновлений больше нет, но, похоже, на данный момент это исправлено для меня.)

Я сделал то же самое, что и @WraithKenny , но с той разницей, что я npm i npm -g без указания @^6 и он будет устанавливать по умолчанию __ver 6.14.8__, но тогда, когда вы npm list -g , он ничего не показывает. Затем я переустановил npm, но версия 7 >> npm i npm<strong i="9">@7</strong> -g и теперь ошибок нет, а когда я npm list -g он показывает все глобально установленные пакеты и больше никаких ошибок.

Поскольку npm 7 не является «последним», вы не хотите использовать npm install -g npm когда вы перейдете на npm 7, так как это снизит его до 6. Используйте @7 чтобы гарантировать, что вы останетесь на v7.

Я столкнулся с этой проблемой сегодня в Win 10 после обновления узла до версии 15.0.1 и одновременно с npm до версии 7.0.5. Быстрый просмотр файлов в трассировке стека журнала отладки указывает на следующие строки (184-5) в файле 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'))

Это мое первое погружение в базовый код, и из контекста этих строк мне не ясно, какова их предполагаемая цель, но они явно препятствуют любым глобальным действиям обновления, кроме add или 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 Вероятно, у вас обоих сейчас два глобальных каталога node_modules, верно?

1) /usr/local/lib/node_modules (с npm 6.14.8 и всеми вашими предыдущими глобальными модулями)

и

2) /usr/local/Cellar/node/15.0.1/lib/node_modules (с npm 7.0.5 и нулевыми глобальными модулями (пока))

И вызов npm будет использовать 6.14.8, но отобразить модули в /usr/local/Cellar/node/15.0.1/lib/node_modules , верно?

@ErikAbele Да, я узнал об этом позже.

@ErikAbele Да, я узнал об этом позже.

Да, я вижу то же самое здесь, в OSX :-( Я все отсортировал в своем Ubuntu 20.04, но как только я попытаюсь обновить npm до 7.0.5 в OSX, он переключает мой глобальный каталог node_modules на /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]

И как только я сделаю npm install npm<strong i="22">@7</strong> -g на последнем, я снова все испортил: - / Так что, если кто-нибудь знает, как это исправить, я был бы признателен за пинг, TIA! ;-)

Хорошо, я сделал следующее, и это решило проблему вновь созданного пути для глобальных пакетов:

1- npm config set prefix '/usr/local' >> это установит путь для глобально установленных пакетов, и он будет искать папку lib внутри этого пути, а затем установит любой пакет в папку node_modules внутри lib .. так что для macOS он найдет все ваши установленные пакеты внутри /usr/local/lib/node_modules >>, но это будет работать с [email protected] не с 7.0.3 поэтому вам нужно проверить, какие версия npm у вас есть.
После того как я обновил узел до 15.0.1 он установил [email protected] поэтому я настроил путь префикса, как показано на шаге __1__, и только тогда я обновил npm до 7.0.5 с помощью npm i npm -g
Теперь, когда я npm list -g он показывает все мои пакеты, установленные ранее. Также npm update -g отлично работает.

Я думаю, что для ubuntu вам нужно сделать npm config set prefix '/usr' чтобы он искал папку lib по этому пути и устанавливал любой пакет внутри node_modules под lib поэтому полный путь будет /usr/lib/node_modules

__update__: он по-прежнему не работает с npm @ 7 .. но работает с npm @ 6 и node 15.0.1 с фиксированным путем к пакетам /usr/local/lib/node_modules
Я все еще страдаю от npm@7 меньше node 15.0.1

Отлично, наконец-то удалось - спасибо!

(Странно, npm config get prefix уже имел этот путь, но установка его в другой раз действительно предотвратила создание второй структуры каталогов.)

@ErikAbele Хорошо, какая у вас версия npm ?! А если npm@7 можно заработать npm update -g ?!

У меня был [email protected] (который пришел с новой установкой [email protected]), затем я добавил префикс и обновился до [email protected] через npm install npm<strong i="7">@7</strong> -g и теперь у меня 7.0.5 в / usr / местные / библиотека / ...

npm update -g прежнему не работает, но npm outdated -g работает для правильного пути, и я могу просто сделать, например, npm install eslint<strong i="12">@latest</strong> -g чтобы обновить определенные пакеты с последними npm по правильному пути. Это все, что мне нужно сейчас (и до тех пор, пока npm не будет исправлен в апстриме) ...

Думаю, пока 7.0.5 не помечена как последняя (а вместо нее стоит 6.14.8), нам придется смириться с этим ...: - /

Я откатываюсь к [email protected] но использую node 15.0.1 , и когда они помечают npm@7 как __latest__, он обновляется.

Доброе утро всем. У меня та же проблема.

Если я выполняю «npm upadate -g», он дает мне «global требует опции add или rm», а если я выполняю «npm list -g», он дает мне « [email protected] ». Если я перейду на npm 6, проблема не исчезнет.

Моя настоящая проблема в том, что у меня было установлено много пакетов по всему миру, и я не помню всех. Есть способ их восстановить?

Я использую macOS Mojave.

Вы можете прочитать это, и это решит вашу проблему: https://github.com/npm/cli/issues/1962#issuecomment -715911549

Nodejs 15.0.1
npm 7.0.3

Использование "npm set config", указывая на папку моего профиля пользователя. Теперь он указывает на правильную папку модулей, но теперь, выполняя устаревший запрос (npm outdated -g), он выводит намного больше устаревших пакетов.

image

и список продолжается для многих других пакетов ...

Я сталкиваюсь со всеми проблемами в этой теме 😞. . . возврат к v6.14.8 пока эти проблемы не будут решены

npm 7.0.6 отсутствует, и проблема все еще сохраняется. ; o (

Официальное исправление еще не работает? Прямо сейчас я не могу обновить свои глобальные пакеты без их повторной установки.

Это все еще происходит на v7.0.7?

NPM v7.0.8 отсутствует, но ошибка все еще существует. Пожалуйста, сделай что-нибудь с этим.

Возможная работа, Mac:
Используйте n для установки, затем переключитесь на новую версию node / npm.
https://github.com/tj/n
Затем переключитесь обратно и
sudo npm -g update должно работать

Возможная работа, Mac:
Используйте n для установки, затем переключитесь на новую версию node / npm.
https://github.com/tj/n
Затем переключитесь обратно и
sudo npm -g update должно работать

Каков результат sudo npm --version ?

@felipecrs это будет зависеть от версии, установленной с помощью n.
Мой: npm 6.14.8, когда узел v12.13.1

Возможная работа, Mac:
Используйте n для установки, затем переключитесь на новую версию node / npm.
https://github.com/tj/n
Затем переключитесь обратно и
sudo npm -g update должно работать

Каков результат sudo npm --version ?

@felipecrs это будет зависеть от версии, установленной с помощью n.
Мой: npm 6.14.8, когда узел v12.13.1

Попробуйте npm v7.0.8?

Попробуйте npm v7.0.8?

Проблема не устранена :-(

Эта проблема снова возникает с сегодняшним обновлением домашнего пивоварения.

Чтобы разобраться, это проблема с npm v7 независимо от версии узла (например, 15).

Можете подтвердить, что проблема не устранена ... Слышали ли мы о том, что над исправлением работают? На прошлой неделе только что получил новый рабочий компьютер, и мне не повезло :(

@felipecrs et al: да, вы правы, это проблема только с npm @ 7 - я только что попробовал с последней версией 7.0.8, и проблема не устранена.

Я полностью удалил папку модулей Node и npm в моем% USERAPPDATA%.
Переустановил узел (15.0.1).
Обновлен npm до 7.07.

1) npm устаревший -g
дает список многих устаревших модулей

2) список npm -g --depth = 0
Теперь в нем перечислены модули (раньше показывались только npm)

3) обновление npm npm -g
(для обновления npm до 7.0.8)
npm ERR! global требует опции add или rm

Заключение:
переустановка всего что-то исправляет, но ошибка npm сохраняется. Я тоже считаю, что это нежизнеспособный способ.

Не похоже, что версия 7.0.9 решит проблему.

Не похоже, что версия 7.0.9 решит проблему.

Ошибка подтверждена, и в следующем выпуске запланировано исправление.

Спасибо за внимание, @isaacs!

Ура! Спасибо @isaacs за cc0c6e1 .

Большое спасибо за исправление. Когда вы ожидаете выхода следующего обновления с этим исправлением?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги