มีคำสั่งให้ลบโมดูล npm โกลบอลทั้งหมดหรือไม่? ถ้าไม่คุณแนะนำอะไร
มีคำสั่งให้ลบโมดูล npm โกลบอลทั้งหมดหรือไม่? ถ้าไม่คุณแนะนำอะไร
คำตอบ:
คำสั่งต่อไปนี้ลบโมดูลโกลบอล npm ทั้งหมด หมายเหตุ: สิ่งนี้ไม่ทำงานบน Windows สำหรับรุ่นของ Windows ที่ทำงานให้ดูคำตอบโอลีฟเบนเน็ตต์
npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
นี่คือวิธีการทำงาน:
npm ls -gp --depth=0
แสดงรายการโมดูลระดับบนสุดทั้งหมด (ดูเอกสารประกอบ cli สำหรับ ls )awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'
พิมพ์โมดูลทั้งหมดที่ไม่ใช่ npm จริง ๆ (ไม่ได้ลงท้ายด้วย/npm
)xargs npm -g rm
ลบโมดูลทั้งหมดที่อยู่เหนือไพพ์ก่อนหน้าสำหรับผู้ที่ใช้Windowsวิธีที่ง่ายที่สุดในการลบแพ็คเกจ npm ที่ติดตั้งทั่วโลกทั้งหมดคือการลบเนื้อหาของ:
C:\Users\username\AppData\Roaming\npm
คุณสามารถไปที่นั่นได้อย่างรวดเร็วด้วยการพิมพ์%appdata%/npm
ทั้งใน explorer, run prompt, หรือจากเมนู start
%USERPROFILE%\AppData\npm
roaming
npm install
อีกครั้ง ฉันต้องลบpackage-lock.json
ไฟล์ด้วย
ฉันลองใช้วิธีแก้ปัญหาของKai Sternadแต่ดูเหมือนไม่สมบูรณ์สำหรับฉัน มีสัญลักษณ์พิเศษมากมายที่เหลืออยู่หลังจากawk
ต้นไม้สุดท้ายออกมาเอง
ดังนั้นฉันจึงคิดวิธีแก้ปัญหาของKai Sternadขึ้นมาเอง(ด้วยความช่วยเหลือเล็กน้อยจากแนวคิดของแคชเมียร์ ):
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 ในparsableรูปแบบ:
/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 rm
เรียกใช้npm -g rm
สำหรับแต่ละโมดูลในรายการ
เช่นเดียวกับวิธีแก้ปัญหาของKai Sternadมันจะทำงานภายใต้ * ระวัง
npm
ติดตั้งโมดูลโกลบอลทั้งหมดไปยังไดเรกทอรีเดียวกัน ตำแหน่งที่แน่นอนอาจแตกต่างกัน /usr/local/lib/node_modules
แต่โดยทั่วไปแล้วมันเป็น
npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm)$' | xargs npm -g rm
@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
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
ลบแพคเกจทั่วโลกnpm remove UNMET
NOOP
grep -v npm
เพื่อให้ตัวเองไม่ได้ลบsudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
สำหรับผู้ที่ใช้Powershell :
npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }
วิธีล้างแคช:
npm cache clear
เพียงเปลี่ยนเป็น%appdata%/npm
ไดเรกทอรีของคุณและเรียกใช้สิ่งต่อไปนี้ ...
for package in `ls node_modules`; do npm uninstall $package; done;
แก้ไข: คำสั่งนี้หยุดพักด้วย npm 3.3.6 (โหนด 5.0) ตอนนี้ฉันใช้คำสั่ง Bash ต่อไปนี้ซึ่งฉันได้แม็พกับ npm_uninstall_all ในไฟล์. bashrc ของฉัน:
npm uninstall `ls -1 node_modules | tr '/\n' ' '`
โบนัสที่เพิ่มเข้ามา? มันเร็วขึ้น!
https://github.com/npm/npm/issues/10187
คุณถอนการติดตั้งการอ้างอิงทั้งหมดที่ระบุใน package.json (NPM) ได้อย่างไร
npm
และn
ก่อนtr
ใน windows ไปที่ไดเรกทอรี "C: \ Users {ชื่อผู้ใช้} \ AppData \ Roaming" และลบโฟลเดอร์ npm ด้วยตนเอง
หากคุณต้องการลบแพ็กเกจทั้งหมดที่คุณติดตั้งคุณสามารถใช้npm -g ls
คำสั่งเพื่อค้นหาแพ็กเกจแล้วnpm -g rm
ลบออก
หากคุณติดตั้งjqไว้คุณสามารถไปได้แม้ไม่มี grep / awk / sed:
npm ls -g --json --depth=0 |
jq -r '.dependencies|keys-["npm"]|join("\n")' |
xargs npm rm -g
บน Debian และที่ได้รับคุณสามารถติดตั้ง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
ระบบปฏิบัติการไม่ได้ระบุโดย OP สำหรับWindowsสคริปต์นี้สามารถใช้เพื่อดักจับโลคัลและโมดูลส่วนกลางและแคชของผู้ใช้
ฉันสังเกตเห็นบนlinuxว่ารูทส่วนกลางนั้นเป็นระบบโกลบอลอย่างแท้จริงแทนที่จะเป็นผู้ใช้ที่กำหนด ดังนั้นการลบรูทโกลบอลอาจไม่ใช่ความคิดที่ดีสำหรับระบบที่ใช้ร่วมกัน นอกจากนั้นฉันสามารถพอร์ตสคริปต์เพื่อทุบตีหากสนใจ
สำหรับWindowsให้บันทึกเป็นไฟล์ 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%
ใช้รหัสนี้เพื่อถอนการติดตั้งแพ็คเกจใด ๆ :
npm rm -g <package_name>
คุณทำได้ดีมาก นี่คือการรวมคำแนะนำในรหัสบรรทัดเดียว
npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`
ต่างกันอย่างไร ถอนการติดตั้งจะทำในคำสั่งเดียวเช่น:npm rm -g *** *** ***
คุณสามารถค้นหาแพคเกจ npm ที่ติดตั้งทั้งหมดของคุณได้ที่:
C:\Users\username\AppData\Roaming\npm
และลบเนื้อหาของ npm ที่คุณต้องการลบ
หาก AppData ไม่แสดงขึ้นแสดงว่ามันถูกซ่อนอยู่และคุณสามารถไปที่ View in file explorer และตรวจสอบรายการที่ซ่อนอยู่จากนั้นคุณจะเห็นโฟลเดอร์ที่ซ่อนอยู่ทั้งหมด
ถ้าคุณอยู่บน windows และต้องการลบ / ถอนการติดตั้ง node_modules ทั้งหมดคุณต้องทำตามขั้นตอนต่อไปนี้
พิมพ์คำสั่งด้านล่างและให้มันเป็นเวลา 1-2 นาทีมันจะถอนการติดตั้งไดเรกทอรีทั้งหมดภายใน node_module
rmdir /s /q node_modules
หวังว่านี้จะช่วยให้ใครบางคนบน windows
หากคุณมี Intellij Webstorm คุณสามารถใช้โปรแกรมจัดการแพ็คเกจกราฟิกในตัว
เปิดเป็น root และสร้างโครงการ emtpy ไปที่
ไฟล์> การตั้งค่า> ภาษาและกรอบงาน> Node.js และ NPM
ที่นั่นคุณจะเห็นแพ็คเกจที่ติดตั้งทั้งหมด การถอนการติดตั้งนั้นง่ายมากคุณสามารถเลือกและยกเลิกการเลือกแพ็คเกจใด ๆ ที่คุณต้องการถอนการติดตั้ง Ctrl + a woks เช่นกัน
สำหรับ 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
สิ่งนี้ควรนำไปใช้กับ NPM ด้วย แต่ฉันไม่แน่ใจว่าที่เก็บ NPM แบบโกลบอล
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g
เนื่องจากนี่เป็นคำตอบอันดับต้น ๆ ในการค้นหาฉันโพสต์ข้อความนี้ที่นี่เพราะเป็นวิธีการแก้ปัญหาที่ฉันใช้ในอดีตเพื่อล้างแล็ปท็อปที่เปลี่ยนคอมพิวเตอร์
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
นี่เป็นทางออกที่หรูหรากว่าที่ฉันพยายามทำในที่ที่ฉันปล่อยให้ 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
โมดูลเหล่านี้จะได้รับการปฏิบัติราวกับว่าพวกเขาเป็นปกติของโครงการ มันยังสร้างไฟล์ package-lock.json เมื่อเสร็จสิ้น:
$ npm remove <package-name> # you may need sudo if it was installed using sudo
วิธีการแก้ปัญหา
npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g
เพียงใส่ในคอนโซลของคุณ:
sudo npm list -g --depth = 0 | awk -F '' '{พิมพ์ $ 2}' | awk -F '@' '{พิมพ์ $ 1}' | sudo xargs npm ลบ -g
มันเหมาะกับฉัน ...
awk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}'
คำอธิบาย: แยกช่องว่างหรือ @, จับคู่เฉพาะบรรทัดด้วย @, ชื่อโมดูลจะเป็นคู่ที่สองถึงครั้งสุดท้าย ($(NF-1)
) ดังนั้นพิมพ์เท่านั้น ถ้าไม่ใช่npm