วิธีถอนการติดตั้งโมดูล npm ในโหนด js?


1130

ในฐานะที่เป็นที่รู้จักกันทั่วไปโมดูล NPM ใด ๆ npm install <module_name>ที่สามารถติดตั้งได้โดยใช้คำสั่งง่ายๆ

ฉันได้ติดตั้งโมดูลสองสามตัวที่ฉันไม่ได้ใช้อีกต่อไปแล้วและฉันแค่ต้องการถอดมันออก ฉันมีคำถามสองสามข้อเกี่ยวกับเรื่องนี้:

  • เรามีคำสั่งหรือกระบวนการใด ๆ ในการถอนการติดตั้งโมดูลจากรูท (คล้าย ๆnpm uninstall <module_name>) หรือจะลบไฟล์โมดูลออกหรือไม่?

  • มันจะมีผลกับเราอย่างไรถ้าเราเก็บโมดูลที่ไม่ได้ใช้


2
หากคุณต้องการลบโมดูล npm ทั้งหมดไปที่นี่: stackoverflow.com/questions/9283472/…
daniel

คำตอบ:


1728

คำสั่งนั้นเรียบง่าย npm uninstall <name>

เอกสาร Node.js https://npmjs.org/doc/มีคำสั่งทั้งหมดที่คุณต้องรู้ด้วย npm

การติดตั้งในเครื่องจะอยู่ในnode_modules/ไดเรกทอรีของแอปพลิเคชันของคุณ สิ่งนี้จะไม่ส่งผลกระทบต่อแอปพลิเคชันหากโมดูลยังคงอยู่ที่นั่นโดยไม่มีการอ้างอิงถึง

อย่างไรก็ตามหากคุณลบแพ็คเกจทั่วโลกแอปพลิเคชันใด ๆ ที่อ้างถึงจะมีปัญหา

นี่คือตัวเลือกที่แตกต่างกัน:

npm uninstall <name>ลบโมดูลออกจากnode_modulesแต่ไม่อัพเดตpackage.json

npm uninstall <name> --saveยังลบออกจากdependenciesในpackage.json

npm uninstall <name> --save-devยังลบออกจากdevDependenciesในpackage.json

npm uninstall -g <name> --save ยังลบทั่วโลก


19
ลองสิ่งนี้npm -g ls | grep -v 'npm@' | awk '/@/ {print $2}' | awk -F@ '{print $1}' | xargs npm -g rmเพื่อถอนการติดตั้งโมดูลที่ติดตั้งแบบ gobally ทั้งหมด ถ้าคุณอยู่บน windows คุณจำเป็นต้องติดตั้ง Cygwin หรือ git เพื่อที่จะใช้งานมัน
Nur Rony

198
เคล็ดลับสองสามข้อ: npm uninstall <name>ลบโมดูลออกจาก node_modules แต่ไม่ใช่ package.json ทำnpm uninstall <name> --saveเพื่อลบการพึ่งพาจาก package.json ทำnpm -g uninstall <name> --saveเพื่อลบการพึ่งพาทั่วโลก
Raine Revere

1
สำหรับการถอนการติดตั้งโมดูลโกลบอลทั้งหมด: stackoverflow.com/questions/5926672/… และลบโฟลเดอร์ node_modules สำหรับการถอนการติดตั้งโมดูลโลคัลทั้งหมดลบโฟลเดอร์
node_modules โลคัล

1
ฉันได้ลองลบ cypress@3.1.4 โดยใช้คำสั่งทั้งหมดที่ระบุไว้ข้างต้นแล้วและยังคงมีอยู่
Steve Staple

20
npm uninstall <name> now removes the module from both package.json` และnode_modules
philip oghenerobo balogun

86

ถ้ามันไม่ได้ทำงานกับลองทั่วโลกโดยการพิมพ์npm uninstall <module_name>-g

บางทีคุณก็ต้องทำมันเป็น superuser / sudo npm uninstall <module_name>ผู้ดูแลระบบด้วย


4
-gnpm WARN uninstallจะเป็นประโยชน์ถ้ามี
Lorem Ipsum Dolor

49

ดีที่จะให้คำตอบที่สมบูรณ์สำหรับคำถามนี้มีสองวิธี : (ตัวอย่างเช่นเราเรียกโมดูลที่ติดตั้งเป็น module1)

  1. ในการลบ module1 โดยไม่เปลี่ยน package.json:

    npm uninstall module1

  2. หากต้องการลบ module1 ด้วยการเปลี่ยน package.json และลบออกจากการพึ่งพาใน package.json:

    npm uninstall --save module1

หมายเหตุ: เพื่อให้คำสั่งที่กล่าวมาข้างต้นง่ายขึ้นคุณสามารถใช้-Sแทน--saveและสามารถใช้remove , rm , r , un , unlinkแทนการถอนการติดตั้ง


เพื่อความสมบูรณ์ผู้ใช้ควรระมัดระวังว่าเขา / เธอต้องการลบการพึ่งพาทั่วโลกหรือในท้องถิ่น สำหรับ globals ใช้ -g กับข้างบน! นอกจากนี้: สำหรับการถอนการติดตั้งโมดูลโกลบอลทั้งหมด: stackoverflow.com/questions/5926672/ … และลบโฟลเดอร์ node_modules สำหรับการถอนการติดตั้งโมดูลโลคัลทั้งหมดลบโฟลเดอร์ local node_modules
DanteTheSmith

28

ฉันเพียงแค่ติดตั้งสไตลัสโดยค่าเริ่มต้นภายใต้ dir บ้านของฉันดังนั้นฉันเพียงแค่ใช้npm uninstall stylusเพื่อแยกมันหรือคุณสามารถลองnpm rm <package_name>ออก


17

หากต้องการถอนการติดตั้งโมดูลโหนด:

npm uninstall <module_name>  

สิ่งนี้จะลบโมดูลออกจาก node_modules แต่จะไม่ลบออกจาก package.json ดังนั้นเมื่อเราทำการติดตั้ง npm อีกครั้งมันจะทำการดาวน์โหลดโมดูล

ดังนั้นเพื่อลบโมดูลออกจาก package.json ใช้:

npm uninstall <module_name> --save  

สิ่งนี้จะลบการพึ่งพาจาก package.json

และหากคุณต้องการถอนการติดตั้งโมดูลทั่วโลกคุณสามารถใช้:

npm -g uninstall <module_name> --save 

สิ่งนี้จะลบการพึ่งพาทั่วโลก


@WernerHenze เมื่อฉันได้รับคำตอบในปี 2559 ในขณะนั้นบางโมดูลการถอนการติดตั้งทั่วโลกหายไป!
Vishnu Mishra

7

ในการลบแพ็คเกจออกnode_modules/เป็นกลุ่มคุณสามารถลบออกจากแพ็คเกจpackage.jsonได้และเรียกใช้npm pruneบนเทอร์มินัล

นี้จะนำแพคเกจเหล่านั้นซึ่งมีอยู่ในระบบแฟ้ม package.jsonแต่ไม่ได้ใช้

PS> สิ่งนี้มีประโยชน์อย่างยิ่งใน Windows เนื่องจากคุณมักจะประสบปัญหากับการไม่สามารถลบไฟล์บางไฟล์ได้เนื่องจาก "เกินขีดจำกัดความยาวของพา ธ "


6

ฉันพบสิ่งนี้ด้วยวิธีที่ยากแม้ว่ามันจะดูเหมือนชัดเจน

ฉันเริ่มพยายามวนซ้ำไดเรกทอรี node_modules ทำงานnpm uninstall module-nameด้วยการวนรอบง่ายในสคริปต์ ฉันพบว่ามันจะไม่ทำงานหากคุณโทรหาเส้นทางแบบเต็มเช่น

npm uninstall module-name

กำลังทำงาน แต่

npm uninstall /full/path/to/node_modules/module-name 

ไม่ทำงาน


5

คุณยังสามารถเรียกใช้สิ่งต่อไปนี้เป็นแบบย่อ:

npm un packageName หรือ npm rm packageName

หมายเหตุ: เพิ่ม-gเมื่อสิ้นสุดคำสั่งเพื่อถอนการติดตั้งแพ็กเกจโกลบอล


4

บางครั้งnpm uninstall -g packageNameไม่ทำงาน

ในกรณีนี้คุณสามารถลบแพ็คเกจด้วยตนเอง

บน Mac ไปที่โฟลเดอร์/usr/local/lib/node_modulesและลบโฟลเดอร์ด้วยแพ็คเกจที่คุณต้องการ แค่นั้นแหละ. ตรวจสอบรายการแพ็กเกจที่ติดตั้งแบบโกลบอลด้วยคำสั่งนี้npm list -g --depth=0


แค่อยากรู้ว่าทำไม "npm uninstall -g packageName" ถึงไม่ทำงานในบางกรณี
Mwiza

เพราะมันเป็นรหัสรถบั๊กใหญ่ ... มันยากมากที่จะปรับให้เข้ากับทุกเวอร์ชั่นของระบบปฏิบัติการ ฉันคิดว่านั่นคือเหตุผล
Nastro

3

สำหรับผู้ใช้ Windows - หากคุณต้องการลบโมดูลโหนดทั้งหมดที่ติดตั้งพร้อมกัน:

  • เปิด PowerShell
  • เข้าไปในโฟลเดอร์ node_modules (cd node_modules)
  • เรียกใช้คำสั่งนี้ - "ถอนการติดตั้ง npm (Get-ChildItem) .Name"

มันจะถอนการติดตั้งโมดูลทั้งหมด


3

อัปเดต npm 5:

ตั้งแต่npm 5.0.0โมดูลที่ติดตั้ง / ถอนการติดตั้งจะถูกเพิ่ม / ลบตามการพึ่งพาโดยค่าเริ่มต้นดังนั้นตัวเลือก - บันทึกไม่จำเป็นอีกต่อไป

วิ่ง

npm uninstall <package>

ตัวอย่างเช่น:

npm uninstall mongodb

มันจะลบโมดูลออกจากโฟลเดอร์ node_modules และไฟล์ package.json ด้วย


1
ทรู; หากคุณต้องการพฤติกรรมเริ่มต้นเก่า (ออกจาก package.json ไม่ถูกแตะต้อง) ให้ใช้ --no-save flag docs.npmjs.com/cli/install
Marcus

2

uninstallตัวเลือกที่ไม่ได้ทำงานสำหรับฉันเมื่อฉันพยายามที่จะใช้คำสั่งเดียวกันกับที่ผมใช้ในการติดตั้ง (ที่ผมได้รับการติดตั้งด้วย@latestคำสั่ง)

ตัวอย่างเช่นฉันติดตั้งแพคเกจเช่นนี้:

npm install  @ngtools/webpack@latest

จากนั้นฉันต้องการถอนการติดตั้งฉันจึงใช้คำสั่งเดียวกัน (รวมถึง @latest)

npm uninstall  @ngtools/webpack@latest

ดังนั้นการถอนการติดตั้งข้างต้นไม่ทำงานฉันต้องลบ@latest& จากนั้นก็ทำงานได้ดี

npm uninstall  @ngtools/webpack

ฉันหวังว่านี่จะช่วยได้


1
# login as root (might be required depending on install)
su - 
# list all global packages
npm ls -g --depth=0
# list all local (project) packages
npm ls -p --depth=0
# remove all global packages
npm ls -g --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
# remove all local packges
npm ls -p --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -p rm

# NOTE (optional): to use node with sudo you can add the bins to /usr/bin
# NOTE $PATHTONODEINSTALL is where node is installed (e.g. /usr/local/node)
sudo ln -s $PATHTONODEINSTALL/bin/node /usr/bin/node
sudo ln -s $PATHTONODEINSTALL/bin/npm /usr/bin/npm

1

ทางออกที่ง่ายที่สุดคือ:

npm uninstall packageName --save-dev

ดูชื่อแพ็คเกจระดับบนในโครงการของคุณ:

npm list --depth=0

ผลผลิตจะเป็นเช่น:

app@0.1.0 /home/jackkobec/projects/myAppName
├── packageName@packageVersion
├── express@4.16.4

คัดลอกชื่อแพคเกจและรันคำสั่งถอนการติดตั้ง npm ตัวอย่างสำหรับพัสดุด่วน:

npm uninstall express --save-dev

1

หากต้องการถอนการติดตั้งโมดูลโดยใช้ NPM คุณสามารถใช้:

npm uninstall moduleName

นอกจากนี้หากคุณต้องการถอนการติดตั้งและต้องการให้การเปลี่ยนแปลงมีผลใน package.json ของคุณคุณสามารถใช้ --save flag ดังนี้:

npm uninstall moduleName --save
OR
npm uninstall -S

และหากคุณต้องการถอนการติดตั้งโมดูลจาก devDependencies และต้องการให้การเปลี่ยนแปลงมีผลใน package.json คุณสามารถใช้แฟล็ก -D ดังนี้:

npm uninstall moduleName -D

1

หากต้องการถอนการติดตั้งโมดูลโหนด:

npm uninstall <module_name>  

สิ่งนี้จะลบโมดูลออกจาก node_modules แต่จะไม่ลบออกจาก package.json

ลบโมดูลออกจาก package.json ที่ใช้โดยใช้คำสั่งนี้:

npm uninstall <module_name> --save 

สิ่งนี้จะลบจาก package.json


0

นอกจากนี้หากคุณเริ่มใช้yarnแทนnpm:
yarn remove <package-name>

เท่ากับ:
npm uninstall <package-name> --save

สิ่งนี้จะ
- ลบแพ็คเกจออกจากpackage.jsonและ
- ถอนการติดตั้งจากnode-modulesโฟลเดอร์ โครงการของคุณ



0

ในกรณีที่คุณมีหน้าต่าง CMD npm -g uninstall <package name>ทำงานเป็นผู้ดูแลและประเภท


-2

npm uninstallหากต้องการที่จะถอนการติดตั้งจำนวนของโมดูลเพียงแค่เรียกใช้ จากนั้นไปและลบโมดูลที่ไม่พึงประสงค์จากที่นั่นแล้วก็เรียกใช้คำสั่งpackage.json npm installควรแก้ไขปัญหาของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.