विश्व स्तर पर सभी npm मॉड्यूल को हटाने की कमान?


381

क्या सभी वैश्विक एनपीएम मॉड्यूल को हटाने का आदेश है? यदि नहीं, तो आप क्या सुझाव देते हैं?

जवाबों:


501

निम्न आदेश सभी वैश्विक npm मॉड्यूल को निकालता है। नोट: यह विंडोज पर काम नहीं करता है। काम करने वाले विंडोज संस्करण के लिए, ओली बेनेट का उत्तर देखें

npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm

यहाँ दिया गया है कि यह कैसे काम करता है:

  • npm ls -gp --depth=0सभी वैश्विक शीर्ष स्तर के मॉड्यूल को सूचीबद्ध करता है ( ls के लिए cli प्रलेखन देखें )
  • awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'सभी मॉड्यूलों को प्रिंट करता है जो वास्तव में स्वयं npm नहीं हैं (के साथ समाप्त नहीं होता है /npm)
  • xargs npm -g rm पिछले पाइप पर आने वाले विश्व स्तर के सभी मॉड्यूल को हटा देता है

3
अजीब गोल्फ आदमी नहीं होना चाहिए, यह बिना grep के एक ही awk कमांड में किया जा सकता है: awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}' स्पष्टीकरण: रिक्त स्थान या @ पर विभाजित करें, @ के साथ केवल मैच लाइनें, मॉड्यूल नाम दूसरे से अंतिम मैच ( $(NF-1)) होगा, इसलिए केवल प्रिंट करें अगर यह नहीं हैnpm
Fotios

28
चेतावनी: नया संस्करण npm मॉड्यूल को फ़िल्टर नहीं करता है। आप उस एक को हटाना नहीं चाहते हैं।
neverfox

9
मैंने टिप्पणियों को पढ़े बिना नया संस्करण भी चलाया। हमेशा टिप्पणियाँ पढ़ें। यहाँ NPM को पुनर्स्थापित करने का तरीका बताया गया है: curl npmjs.org/install.sh | श
जैक एलन

12
वाह। एनपीएम चीजों को अनइंस्टॉल करना आसान नहीं बनाता है। बंडलर और रत्नों के साथ, यह सब कुछ अनइंस्टॉल करने के लिए तुच्छ है, इस तथ्य को कि आपको जीआरपी का उपयोग करना है और ऐसा एक भयानक डिजाइन है। क्या ऐसा करने का एक सरल तरीका है? वास्तव में उत्तर में आवश्यक कोड किसे याद है?
ब्रायन डियर

15
@neverfox और अन्य: फिक्स्ड, एनपीएम ही अब हटा नहीं है। असुविधा के लिए खेद है
काई स्टर्नड

268

विंडोज का उपयोग करने वालों के लिए , विश्व स्तर पर स्थापित एनपीएम पैकेजों को हटाने का सबसे आसान तरीका है:

C:\Users\username\AppData\Roaming\npm

आप %appdata%/npmएक्सप्लोरर, टाइप प्रॉम्प्ट, या प्रारंभ मेनू से टाइप करके जल्दी से वहाँ पहुँच सकते हैं ।


5
इस एक के लिए धन्यवाद, npm-cache के बारे में क्या, मुझे वह भी हटा देना चाहिए?
नील

2
अगर यह वहां है तो npm फ़ोल्डर को न हटाएं
AutomatedMike

Npm के बाद के संस्करणों में ऐसा लगता है कि इसे %USERPROFILE%\AppData\npmबिना स्थानांतरित किया गया है roaming
लियाम

1
मैं सभी पैकेजों को पुनः स्थापित कर रहा था, npm installफिर से चलने पर मैं EINTEGRITY त्रुटियों में भाग गया । मुझे अपनी package-lock.jsonफाइल भी डिलीट करनी थी ।
toastyMallows

स्कूप का उपयोग करने वाली खिड़कियों के लिए, पथ यह है: C: \ Users \ username \ scoop \ apps \ नोडज \ current \ bin \ node_modules
एरियल मिर्रा

176

मैंने काई स्टर्नड के समाधान की कोशिश की लेकिन यह मेरे लिए अपूर्ण था। awkडिप्स के पेड़ से आखिरी के बाद बहुत सारे विशेष प्रतीकों को छोड़ दिया गया था ।

इसलिए, मैं काई स्टर्नड के समाधान के अपने स्वयं के संशोधन के साथ आया ( कश्मीरी के विचार से थोड़ी मदद के साथ ):

npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm

npm ls -gp --depth=0सभी विश्व स्तर पर स्थापित npm मॉड्यूल को पार्स करने योग्य प्रारूप में सूचीबद्ध करता है:

/home/leonid/local/lib
/home/leonid/local/lib/node_modules/bower
/home/leonid/local/lib/node_modules/coffee-script
...

awk -F/node_modules/ '{print $2}' रास्तों से मॉड्यूल नामों को निकालता है, जो विश्व स्तर पर स्थापित सभी मॉड्यूल की सूची बनाते हैं।

grep -vE '^(npm|)$' स्वयं npm और रिक्त लाइनों को निकालता है।

xargs -r npm -g rmnpm -g rmसूची में प्रत्येक मॉड्यूल के लिए कॉल करता है ।

जैसा काई Sternad के समाधान, यह हूँ केवल * nix के तहत काम करते हैं।


1
इन फ़ाइलों को कहाँ संग्रहीत किया जाता है, मुझे इस विधि से नफरत है। कहीं एक वैश्विक पैकेज नहीं है। कहीं और?
इवान कैरोल

2
@ EvanCarroll नहीं, ऐसी कोई फ़ाइल नहीं है, लेकिन npmइसके सभी वैश्विक मॉड्यूल को एक ही निर्देशिका में स्थापित करता है। सटीक स्थान भिन्न हो सकता है, लेकिन आमतौर पर यह है /usr/local/lib/node_modules
लियोनिद बेस्चस्टानी

3
सिर्फ FYI करें, यह भी
npm

11
यह कमांड OSX पर काम करती है और npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm)$' | xargs npm -g rm
npm

2
यह कमांड स्कॉप्ड पैकेज (जैसे @angular/cli) को संभालने में विफल रही । मैं इसके लिए एक और माचिस जोड़ता हूं awkऔर मेरे लिए काम करने की आज्ञा इस तरह दिखती है:npm ls -gp --depth=0 | awk -F/ '/node_modules\/@/ {print $(NF-1)"/"$NF} /node_modules\/[^@]/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
जैक क्यू

64
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}'  | sudo xargs npm remove -g

मेरे लिए काम किया

  • sudo npm list -g --depth=0. स्थापित सभी शीर्ष स्तर को सूचीबद्ध करता है
  • awk -F ' ' '{print $2}' ├── से छुटकारा मिलता है
  • awk -F '@' '{print $1}' '@' से पहले हिस्सा मिलता है
  • sudo xargs npm remove -g वैश्विक स्तर पर पैकेज निकालता है

इस संस्करण ने मेरे लिए जून '14 तक सबसे अच्छा काम किया। एकमात्र अतिरिक्त सूची से "UNMET" निर्भरता को फ़िल्टर करने के लिए हो सकता है, लेकिन यह महत्वपूर्ण नहीं है, जैसा कि npm remove UNMETबस NOOP करता है।
kangax 15

4
grep -v npmइतना जोड़ देगा कि npm खुद ही नहीं sudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
हटेगा

वहाँ जाता है, अपने npm!
All All Vаиітy

26

Powershell का उपयोग करने वालों के लिए :

npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }

कैश साफ़ करने के लिए:

npm cache clear

22

बस अपनी %appdata%/npmनिर्देशिका में स्विच करें और निम्नलिखित चलाएँ ...

for package in `ls node_modules`; do npm uninstall $package; done;

EDIT: यह कमांड npm 3.3.6 (नोड 5.0) के साथ टूटती है। अब मैं निम्नलिखित बैश कमांड का उपयोग कर रहा हूं, जिसे मैंने अपने .bashrc फ़ाइल में npm_uninstall_all में मैप किया है।

npm uninstall `ls -1 node_modules | tr '/\n' ' '`

जोड़ा गया बोनस? यह तेजी से रास्ता है!

https://github.com/npm/npm/issues/10187

आप पैकेज.जॉन (एनपीएम) में सूचीबद्ध सभी निर्भरता की स्थापना कैसे रद्द करते हैं?


इसे प्रेम करें। तेज़ और सरल :) मैंने अभी grep -v का उपयोग किया है npmऔर nइससे पहलेtr
Apnerve

16

खिड़कियों में "C: \ Users {उपयोगकर्ता नाम} \ AppData \ Roaming" निर्देशिका पर जाएं और मैन्युअल रूप से npm फ़ोल्डर निकालें


1
यह विंडोज पर हमारे लिए सीधा / उपयोगी था। धन्यवाद।
रोब

14

यदि आप अपने द्वारा इंस्टॉल किए गए सभी पैकेजों को हटाना चाहते हैं, तो आप npm -g lsउन्हें खोजने के लिए कमांड का उपयोग कर सकते हैं, और फिर npm -g rmउन्हें निकाल सकते हैं।


7

यदि आपने jq स्थापित किया है, तो आप बिना grep / awk / sed के भी जा सकते हैं:

npm ls -g --json --depth=0 |
  jq -r '.dependencies|keys-["npm"]|join("\n")' |
  xargs npm rm -g

डेबियन और व्युत्पन्न पर आप के साथ jq स्थापित कर सकते हैं :

sudo apt-get install jq

यह एक एप्रोपोस jsonशैली के साथ एक ठोस जवाब है।
रिचर्ड अयोटे

अगर सूडो की आवश्यकता होती है तो:npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
रोजर

5

ओएस ओपी द्वारा निर्दिष्ट नहीं है। के लिए विंडोज , इस स्क्रिप्ट स्थानीय परमाणु करने के लिए इस्तेमाल किया जा सकता है और उपयोगकर्ता वैश्विक मॉड्यूल और कैश है।

मैंने लिनक्स पर ध्यान दिया कि वैश्विक रूट सही मायने में दिए गए उपयोगकर्ता के बजाय सिस्टम के लिए वैश्विक है। इसलिए वैश्विक जड़ को हटाना एक साझा प्रणाली के लिए एक अच्छा विचार नहीं हो सकता है। एक तरफ, मैं स्क्रिप्ट को बैश करने के लिए पोर्ट कर सकता हूं अगर दिलचस्पी हो तो ।

के लिये विंडोज , एक cmd फाइल करने के लिए बचाने को चलाने के लिए।

@ECHO OFF
SETLOCAL EnableDelayedExpansion 
SETLOCAL EnableExtensions

SET /A ecode=0

:: verify
SET /P conf="About to delete all global and local npm modules and clear the npm cache. Continue (y/[n])?
IF /I NOT "%conf%"=="y" (
  ECHO operation aborted
  SET /A ecode=!ecode!+1
  GOTO END
)

:: wipe global and local npm root
FOR %%a IN ("" "-g") DO (

  :: get root path into var
  SET cmd=npm root %%~a
  FOR /f "usebackq tokens=*" %%r IN (`!cmd!`) DO (SET npm_root=%%r)

  :: paranoid
  ECHO validating module path "!npm_root!"
  IF "!npm_root:~-12!"=="node_modules" (
    IF NOT EXIST "!npm_root!" (
      ECHO npm root does not exist "!npm_root!"
    ) ELSE (
      ECHO deleting "!npm_root!" ...
      :: delete
      RMDIR /S /Q "!npm_root!"
    )
  ) ELSE (
      ECHO suspicious npm root, ignoring "!npm_root!"
  )
)

:: clear the cache
ECHO clearing the npm cache ...
call npm cache clean

:: done
ECHO done

:END

ENDLOCAL & EXIT /b %ecode%

3

किसी भी पैकेज की स्थापना रद्द करने के लिए इस कोड का उपयोग करें:

npm rm -g <package_name>

1
प्रश्न स्पष्ट रूप से सभी ने कहा, विशिष्ट पैकेज नाम नहीं।
पोलव

2

आप सभी ने अच्छा काम किया। यह एक लाइन कोड के लिए संयुक्त सुझाव है।

npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`

क्या अंतर है? स्थापना को एकल कमांड में किया जाएगा जैसे:npm rm -g *** *** ***


2

आप स्थान पर अपने सभी स्थापित npm संकुल ढूँढ सकते हैं:

C:\Users\username\AppData\Roaming\npm

और npm की सामग्री को हटा दें जिसे आप हटाना चाहते हैं।

यदि AppData नहीं दिखा रहा है, तो इसका मतलब है कि यह छिपा हुआ है और आप फ़ाइल एक्सप्लोरर में व्यू पर जा सकते हैं और हिडन आइटम्स की जांच कर सकते हैं, फिर वहां आप सभी छिपे हुए फ़ोल्डर देख सकते हैं।


1

खैर अगर आप खिड़कियों पर हैं, और सभी नोड_मॉडल को हटाना / अनइंस्टॉल करना चाहते हैं तो आपको निम्न चरणों को करने की आवश्यकता है।

  1. विंडोज़ कमांड प्रॉम्प्ट पर जाएं
  2. नोड_मॉड्यूल निर्देशिका पर नेविगेट करें ( नोड_मॉडल फ़ोल्डर के अंदर नहीं )
  3. कमांड के नीचे टाइप करें और इसे 1-2 मिनट के लिए दे दें यह सभी निर्देशिकाओं को नोड_मॉडल के अंदर अनइंस्टॉल कर देगा

     rmdir /s /q node_modules

आशा है कि यह खिड़कियों पर कुछ मदद करेगा


1

अगर आपके पास Intellij Webstorm है तो आप इसके बिल्ट-इन ग्राफिकल पैकेज मैनेजर का उपयोग कर सकते हैं।

इसे रूट के रूप में खोलें और एक emtpy प्रोजेक्ट बनाएं। के लिए जाओ

फ़ाइल> सेटिंग्स> भाषा और फ्रेमवर्क> नोड.जेएस और एनपीएम

वहां आपको सभी स्थापित पैकेज दिखाई देंगे। अनइंस्टॉल करना आसान है, आप जिस भी पैकेज को अनइंस्टॉल करना चाहते हैं, उसका चयन और चयन रद्द कर सकते हैं, Ctrl + woks भी।


1

के लिये yarn global

nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add

या, अगर आपको इस बात की परवाह नहीं है कि वास्तव में अंदर क्या है package.json

echo {} >  ~/.config/yarn/global/package.json && yarn global add

यह एनपीएम पर भी लागू होना चाहिए, लेकिन मुझे यह बिल्कुल पक्का नहीं है कि एनपीएम ग्लोबल कहां संग्रहीत है।


0
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g

0

चूंकि यह खोज में शीर्ष उत्तर है, मैं इसे यहां पोस्ट कर रहा हूं क्योंकि यह वह समाधान था जिसका उपयोग मैंने अतीत में कंप्यूटर स्विचिंग लैपटॉप को साफ करने के लिए किया था।

cd ~/Documents # or where you keep your projects
find . -name "node_modules" -exec rm -rf '{}' +

स्रोत: https://winsmarts.com/delete-all-node-modules-folders-recursively-on-windows-edcc9a9c079e


0

यहाँ एक और अधिक सुंदर समाधान है जो मैंने कोशिश की जहाँ मैंने npm को मेरे लिए सभी काम करने दिया।

# On Linux Mint 19.1 Cinnamon
# First navigate to where your global packages are installed.

$ npm root # returns /where/your/node_modules/folder/is
$ cd /where/your/node_modules/folder/is # i.e for me it was cd /home/user/.npm-packages/lib/node_modules

तब यदि आप करते हैं npm uninstallया npm removeइन मॉड्यूलों के साथ ऐसा व्यवहार किया जाएगा जैसे कि वे एक परियोजना की सामान्य निर्भरता थे। यहां तक ​​कि यह एक पैकेज- lock.json फ़ाइल भी बनाता है जब यह किया जाता है:

$ npm remove <package-name> # you may need sudo if it was installed using sudo  

-1

तलछट का हल

npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g

-5

बस अपने कंसोल में रखें:

सुदो एनपीएम सूची -g - डेप्थ = ०। | awk -F '' '{प्रिंट $ 2}' | awk -F '@' '{प्रिंट $ 1}' | सूदो xargs npm हटाने -g

मेरे लिए इसका काम ...


1
समाधान का सटीक मुकाबला पहले से ही यहाँ वर्णित है , इसी पृष्ठ पर।
ivarni
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.