Cli: [BUG] تحديث npm - فشل عالمي: خطأ npm! يتطلب خيار Global خيار add أو rm

تم إنشاؤها على ١٤ أكتوبر ٢٠٢٠  ·  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
  • نانومتر: 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 - فشل عالمي: خطأ npm! يتطلب خيار Global خيار add أو rm

نفس الخطأ إذا أردت فقط تحديث الحزم العالمية:

npm -g update

أو

npm -g upgrade

رؤيته مع الإصدار 7.0.1 على Windows و Debian 10.

عملت هذه لـ 6.x

يبدو أنه تم إصلاحه في الإصدار 7.0.2

ما زلت أرى نفس المشكلة مع 7.0.2

$ npm -v
7.0.2

تحديث $ npm -g
npm خطأ! يتطلب خيار Global خيار add أو rm

يمكنني تأكيد نفس السلوك في npm 7.0.3 على Windows 10 x64. تمت الترقية للتو من npm @ 6 وحصلت على هذه المفاجأة.

npm v 7.0.2 على macOS nodejs v15 لديه نفس المشكلة.

npm خطأ! يتطلب خيار Global خيار add أو rm
npm خطأ! يمكن العثور على سجل كامل لهذا التشغيل في:
npm خطأ! / المستخدمون/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 ، الإصدار 7.0.3 من npm باستخدام 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 وسيتم تثبيته افتراضيًا __أكثر من 6.14.8__ ، ولكن بعد ذلك عند npm list -g ، لا يظهر أي شيء. I ثم تثبيته الآلية الوقائية الوطنية ولكن النسخة 7 >> npm i npm<strong i="9">@7</strong> -g والآن هناك أية أخطاء، وعندما npm list -g فإنه يظهر كافة الحزم المثبتة على الصعيد العالمي، وعدم وجود أخطاء بعد الآن.

نظرًا لأن npm 7 ليس "الأحدث" ، فأنت لا تريد استخدام npm install -g npm بمجرد أن تكون في npm 7 ، حيث سيؤدي ذلك إلى الرجوع إلى الإصدار 6. استخدم @7 لضمان بقائك في الإصدار 7.

لقد واجهت هذه المشكلة اليوم على Win 10 بعد تحديث العقدة إلى الإصدار 15.0.1 وبشكل متزامن npm إلى الإصدار 7.0.5. تشير نظرة سريعة على الملفات الموجودة في تتبع مكدس سجل التصحيح إلى الأسطر التالية (184-5) في الملف npmnode_modulesnpmnode_modules @ npmcli \ arboristlib \ arboristbuild-perfect-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

alaadahmedWraithKenny كلاكما ربما يكون اثنين 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]

نظام 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]

وبمجرد أن أقوم بعمل npm install npm<strong i="22">@7</strong> -g على الأخير ، أفسد الأمر مرة أخرى: - / لذلك إذا كان أي شخص يعرف كيفية إصلاح ذلك هناك ، سأقدر ping ، 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 / local / lib / ...

لا يزال 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 أنه __ أحدث__ ، سيتم ترقيته.

صباح الخير على الاطلاق. لدي نفس المشكلة.

إذا قمت بإجراء "npm upadate -g" أعطني "global يتطلب خيار add أو rm" وإذا فعلت "npm list -g" أعطني " [email protected] ". إذا رجعت إلى الإصدار 6 npm ، فستظل المشكلة قائمة.

مشكلتي الحقيقية هي أن لدي العديد من الحزم المثبتة على مستوى العالم ولا أتذكر كل شيء. هل هناك طريقة لاستعادتها؟

أنا على 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 ولا تزال نفس المشكلة قائمة. ؛ س (

هل يتم العمل على إصلاح رسمي حتى الآن؟ لا يمكنني الآن تحديث الحزم العالمية الخاصة بي دون إعادة تثبيتها.

هل هذا مازال يحدث في 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 وآخرون: نعم ، أنت على حق ، إنها مشكلة في 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 خطأ! يتطلب خيار Global خيار add أو rm

استنتاج:
تؤدي إعادة تثبيت كل شيء إلى إصلاح شيء ما ولكن يستمر خطأ npm. أعتقد أن هذه ليست طريقة قابلة للتطبيق أيضًا.

لا يبدو أن الإصدار 7.0.9 سيصلح المشكلة أيضًا.

لا يبدو أن الإصدار 7.0.9 سيصلح المشكلة أيضًا.

تم التعرف على الخطأ ومن المقرر إصلاحه للإصدار القادم.

شكرًا للنظر في هذا ،isaacs!

ياي! شكرا لك isaacs على cc0c6e1 .

شكرا جزيلا لإصلاح هذا. متى تتوقع إصدار التحديث التالي بهذا الإصلاح؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات