ฉันจะอัปเดต devDependencies ใน NPM ได้อย่างไร


155

npm updateดูเหมือนว่าจะเพียงแค่การปรับปรุงแพคเกจในแต่สิ่งที่เกี่ยวกับdependenciesdevDependencies

ตอนนี้คุณสามารถติดตั้งdevDependenciesโดยใช้งานnpm install .ได้ แต่มันไม่ทำงานnpm update .

ความคิดใด ๆ


1
ฉันวิ่งเข้าไปในสิ่งเดียวกัน ฉันประหลาดใจที่ไม่สมดุลระหว่างและnpm install npm updateฉันแก้ไขมันด้วยการลบไดเร็กตอรี่ของฉันnode_modulesแล้วรันnpm installอีกครั้ง แต่มันก็ดูเหมือนว่าจะมีวิธีที่ดีกว่านี้
Joe White

7
ฉันเปิดรายงานข้อผิดพลาดสำหรับพฤติกรรมนี้ เราจะดูว่าเกิดอะไรขึ้น
Joe White

อาจเป็นเพราะ devm ของ NPM คิดว่าผู้คนจะใช้npm linkสำหรับทำสภาพแวดล้อมของ dev
Julian Knight

คำตอบ:


157

หากต้องการอัปเดต package.json เพิ่มเติมจากโมดูลในเครื่องให้เรียกใช้

npm update --save-dev

หรือจะใช้คำสั่งเดียวกันเพื่อประหยัดเวลา

npm update -D

คุณสามารถดูรายละเอียดทั้งหมดของการอัพเดตหรือคำสั่งใด ๆ สำหรับเรื่องนั้นผ่าน

npm help <cmd>

20
npm update -Dไม่ได้ผลสำหรับฉันมันไม่ได้อัพเดทอะไรเลย
AmazingDreams

27
ทำไมสิ่งนี้จึงถูกทำเครื่องหมายว่าเป็นคำตอบที่ถูกต้องเมื่อคำถามไม่ใช่วิธีบันทึกการอัปเดตpackage.jsonแต่จะทำอย่างไรnpm updateเพื่ออัปเดต devDependencies
Alejandro García Iglesias

@onalbi: มันไม่ได้ นี่คือหัวข้อการติดตามปัญหา
Dan Dascalescu

1
npm update --save-devทำงานได้ดีสำหรับฉัน ใช้โหนดv12.11.0และ npmv6.11.3
maximedupre

55

ติดตั้งการตรวจสอบการอัปเดต npm ( https://www.npmjs.org/package/npm-check-updates ) จากนั้นข้ามไปที่โฟลเดอร์โครงการของคุณและเรียกใช้:

npm-check-updates

และเพื่ออัพเดตและบันทึกการเปลี่ยนแปลงไฟล์ package.json ของคุณ:

npm-check-updates -u

ncuจะดีกว่าnpm-check-updatesบันทึกการพิมพ์
Edric

@DimitriKopriwa มี-dตัวเลือกสำหรับผู้ที่พึ่งพาเท่านั้น
Michael Thompson

ncu --dep dev -u; การติดตั้ง npm
Kiruahxh

7

ปัญหานี้ไม่ได้รับการยกเว้นภาษีสรรพสามิตกับรุ่นปัจจุบันของ NPM (1.3.11)

อัปเดตทำงานได้ดีกับ: npm update


1
น่าเสียดายที่มันไม่ได้ นี่คือหัวข้อการติดตามปัญหา
Dan Dascalescu

4

หากคุณใช้เวอร์ชัน npm ที่ล้าสมัยอาจเป็นปัญหา ดังนั้นก่อนที่คำสั่งอื่นจะทำงาน:

sudo npm install npm -g

หรือ (ถ้าข้างต้นไม่ทำงาน):

sudo npm update npm -g

จากนั้นเปิดคอนโซลอีกครั้ง (เพื่อให้การเปลี่ยนแปลงมีผล) ตอนนี้คุณสามารถตรวจสอบใหม่ของคุณnpm --versionและถ้ามันเป็นทันสมัยดำเนินการ:

npm update

หรือ (ถ้าคุณต้องการ):

npm update --save-dev

แต่น่าเสียดายที่นี้ไม่ได้ทำงานใน NPM 5. นี่คือหัวข้อการติดตามปัญหา
Dan Dascalescu

2

วิธีหนึ่ง (ช้า) ในการบังคับการอัพเดตคือการลบไดเร็กทอรี node_modules จากนั้นทำnpm installอีกครั้ง

นี่เป็นข้อผิดพลาดที่รู้จักของnpm updateคำสั่งซึ่งได้รับการแก้ไขในสาขาการพัฒนาnpmดูที่นี่: https://github.com/isaacs/npm/pull/3863

มันควรลงจอดในเวอร์ชันเสถียรล่าสุดของ npm ในไม่ช้า


1
ในกรณีของ npm> v5 คุณจะต้องลบpackage-lock.jsonเพื่อให้สามารถใช้งานได้มิฉะนั้นจะติดตั้งรุ่นที่ระบุไว้ในไฟล์ล็อค
karfau

นอกจากนี้สิ่งนี้จะไม่อัปเดตpackage.jsonสำหรับคุณ นี่คือหัวข้อการติดตามปัญหา
Dan Dascalescu

2

ฉันพบปัญหาเดียวกันกับ OP และไม่พบวิธีแก้ปัญหาดังนั้นฉันจึงตัดสินใจเขียนปลั๊กอิน Grunt ที่จะอัพเดตการอ้างอิงของฉันโดยอัตโนมัติ ..

อยู่ใน Github ฉันชอบที่จะได้รับข้อมูลและความร่วมมือเพื่อทำให้เป็นเครื่องมือที่ดีที่สุดที่ NPM ไม่ได้ให้บริการ

โดยทั่วไปจะอัปเดตการพัฒนาที่ล้าสมัยของคุณโดยอัตโนมัติด้วย Grunt Task

https://github.com/pgilad/grunt-dev-update


2

สิ่งที่ใช้ได้ผลสำหรับฉันคือการติดตั้งการพึ่งพาของแต่ละบุคคลเช่นนี้

npm install react-test-renderer@15.6.1 --save --only=dev

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