- บันทึกตัวเลือกสำหรับการติดตั้ง NPM คืออะไร?


2035

ฉันเห็นการสอนบางคำสั่งที่:

npm install --save

อะไร--saveตัวเลือกหมายความว่าอย่างไร

ไม่พบคำตอบใน Google


32
@ Tom- --save: Package will appear in your dependencies.
WiredPrairie

7
คุณสามารถใช้ทางลัด -S และ -D ที่นั่น -S คือ - บันทึกและ -D คือ '--save-dev - บันทึก (หรือเรียบง่าย -S): แพคเกจจะปรากฏในการอ้างอิงของคุณ --save-dev (หรือง่าย -D): แพคเกจจะปรากฏในการอ้างอิงของคุณ
Gil Epshtain

5
@WiredPrairie ขอบคุณฉันพยายามnpm install (--help | -h | -help ..)และไม่มีอะไร
juliangonzalez

2
ขอบคุณ @Dmitri ฉันมีปัญหาเดียวกัน มาที่ NPM เพิ่มไปที่หน้า MAN ของคุณสำหรับเครื่องมือของคุณ
Erdinc Ay

67
ฉันไม่เข้าใจเหตุผลเบื้องหลังการตัดสินใจลบแม้เพียงแค่เอ่ยถึงตัวเลือกนี้จากเอกสารและหน้าช่วยเหลือโดยไม่ลดทอนอย่างน้อยที่สุดโดยมีคำเตือนในเครื่องมือเอง ในขณะที่มือใหม่มีการสัมผัสกับมันผ่านทางบทเรียน zillions จากนั้นพวกเขาพยายามค้นหาว่ามันทำอะไรและต้องเสียเวลา 20 นาทีในการอ่านเอกสารเพื่อจะได้อ่านประวัติ npm ใน stackoverflow ผิดปกติพอที่จะป้องกันไม่ให้เสียเวลามากขนาดนี้ (ถ้าความนิยมของคำถามเป็นข้อบ่งชี้ใด ๆ ) เป็นหนึ่งในวัตถุประสงค์ของเอกสาร
Michael Ekoka

คำตอบ:


2477

อัปเดต npm 5:

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

คำตอบเดิม:

ก่อนเวอร์ชัน 5 NPM เพียงติดตั้งแพคเกจตามnode_modulesค่าเริ่มต้น เมื่อคุณกำลังพยายามที่จะติดตั้งการอ้างอิงสำหรับแอปของคุณ / โมดูลที่คุณจะต้องติดตั้งครั้งแรกพวกเขาแล้วเพิ่มพวกเขา (พร้อมกับหมายเลขรุ่นที่เหมาะสม) การแสดงของคุณdependenciespackage.json

--saveตัวเลือกคำสั่ง NPM รวมภายในแพคเกจของdependenciesส่วนของคุณpackage.jsonโดยอัตโนมัติจึงช่วยประหยัดขั้นตอนเพิ่มเติม

นอกจากนี้ยังมีตัวเลือกที่สมบูรณ์--save-devและ--save-optionalที่บันทึกแพ็คเกจภายใต้devDependenciesและoptionalDependenciesตามลำดับ สิ่งนี้มีประโยชน์เมื่อติดตั้งแพคเกจสำหรับการพัฒนาเท่านั้นเช่นgruntหรือไลบรารีการทดสอบของคุณ


140
เอกสารนี้มีอยู่จริงหรือเปล่า ฉันหามันไม่เจอใน Google หรือในความnpmช่วยเหลือ
Christian Ternus

111
มันจะดีถ้าเอกสารสำหรับสิ่งนี้ปรากฏขึ้นเมื่อnpm install --helpมีการใช้งาน
Mark Stosberg

11
@jimsmith: ตั้งแต่ npm 5.0 เป็นค่าเริ่มต้น
voithos

3
"การอัพเดต npm" บน NPM 5 จะแก้ไข package.json เป็นค่าเริ่มต้นหรือไม่
Igor Okorokov

6
@voithos สำหรับฉัน NPM 5 อัพเดตเวอร์ชันแพ็คเกจใน package.json เพื่อหลีกเลี่ยงมันฉันต้องเรียกใช้ 'npm update - no-save'
Igor Okorokov

219

ในการเพิ่มแพ็คเกจในการขึ้นต่อกัน:

npm install my_dep --save

หรือ

npm install my_dep -S

หรือ

npm i my_dep -S

เพื่อเพิ่มแพ็กเกจใน devDependencies

npm install my_test_framework --save-dev

หรือ

npm install my_test_framework -D

หรือ

npm i my_test_framework -D

package.json ป้อนคำอธิบายรูปภาพที่นี่


30
ระมัดระวังการใช้เวอร์ชันทางลัดเช่นเดียว-S -Dกับที่ต้องเป็นตัวพิมพ์ใหญ่ ฉันทำผิดพลาดนี้เสมอและ npm จะไม่บ่นหรือเพิ่มลงใน package.json
Murray Wynnes

7
มันไม่ได้บ่นเพราะ-s(ตัวพิมพ์เล็ก) สำหรับ--silentตัวเลือกและ-dสำหรับข้อมูล loglevel ซึ่งเป็นทั้งทางลัดที่ถูกต้อง
tanvi

131

มันจะไม่ทำอะไรเลยถ้าคุณไม่มีpackage.jsonไฟล์ เริ่มต้นด้วยการวิ่งnpm initเพื่อสร้าง จากนั้นโทรไปยังnpm install --saveหรือnpm install --save-devหรือnpm install --save-optionalจะอัปเดตpackage.jsonเพื่อแสดงรายการการขึ้นต่อกันของคุณ


37
เพิ่งค้นพบว่ามันทำงานย้อนหลัง (ดูเหมือน) คุณสามารถเรียกใช้npm install --save-devครั้งแรกของคุณจากนั้น npm init และ package.json ของคุณจะได้รับการบรรจุ
Jacob Wang

20

ตามเอกสาร NPM

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นดูเหมือนว่าโดยการรันnpm install package_nameควรเพิ่มการพึ่งพาแพ็คเกจไปยัง package.json โดยอัตโนมัติใช่ไหม


1
ฉันเดา - ไม่มีการบันทึกคือการใช้เมื่อคุณต้องการฟังก์ชั่นของเช่น npm <5
Abhiroj Panwar

ฉันเห็นnpm config ls -lแสดงว่าโดยค่าเริ่มต้นตัวเลือก save-xxx เป็นเท็จทั้งหมดเท่านั้นบันทึกเป็นจริง
ROROROOROROR

ดูเหมือนว่า NPM จะไม่ยิงข้อผิดพลาดใด ๆ ถ้าคุณใส่ตัวเลือกไม่มีอยู่เช่น --save-xxxxxx มันไม่สนใจมันและพฤติกรรมเริ่มต้น - บันทึก -prod จะมีผลกระทบ อาจจะ - บันทึกมาจากเวอร์ชัน npm เก่าบางรุ่น
ลีออน

13

นอกจากนี้คุณยังสามารถใช้-S, -Dหรือ-Pซึ่งเทียบเท่าของการประหยัดแพคเกจเพื่อพึ่งพาแอปพึ่งพา dev หรือพึ่งพาแยง ดูทางลัด NPM เพิ่มเติมด้านล่าง:

-v: --version
-h, -?, --help, -H: --usage
-s, --silent: --loglevel silent
-q, --quiet: --loglevel warn
-d: --loglevel info
-dd, --verbose: --loglevel verbose
-ddd: --loglevel silly
-g: --global
-C: --prefix
-l: --long
-m: --message
-p, --porcelain: --parseable
-reg: --registry
-f: --force
-desc: --description
-S: --save
-P: --save-prod
-D: --save-dev
-O: --save-optional
-B: --save-bundle
-E: --save-exact
-y: --yes
-n: --yes false
ll and la commands: ls --long

รายการทางลัดนี้สามารถรับได้โดยการรันคำสั่งต่อไปนี้:

$ npm help 7 config

7

ในฐานะของ NPM 5 มันเป็นอย่างดีมากขึ้นในการใช้งาน--save-prod(หรือ-P) มากกว่า--saveแต่ทำสิ่งเดียวกันตามที่ระบุไว้ในNPM ติดตั้ง จนถึงตอนนี้--saveยังสามารถใช้งานได้หากมีให้


สิ่งนี้จำเป็นต้องขึ้นไปด้านบนเพื่อช่วยเราอ่านรูปแบบการอ่านความขัดแย้งและการจี้ด้าย ดังนั้นจำเป็นต้องกระตุ้นคำตอบสั้น ๆ ด้วย URL ที่ถูกต้องเพื่อให้เราสามารถหลีกเลี่ยง CRUD และทำงานต่อไปได้ (Quora มีระเบียบ 'เป็นคำตอบที่เกี่ยวข้อง' ฯลฯ และฉันยังเคยแนะนำให้ทำเช่นนี้) \ n แย่มากที่โหนดโหนดอย่างเป็นทางการไม่มีการกล่าวถึงตัวเลือกที่เก่ากว่า (หมดอายุ) และการอ้างอิงโหนดส่วนใหญ่ดูเหมือนจะเป็นล่วงหน้า -5.0 ส่งหัวของเราหมุน
killjoy

6

ตั้งแต่ npm 5 ขณะนี้ npm จะบันทึกเป็นค่าเริ่มต้น ในกรณีที่คุณต้องการให้ npm ทำงานในรูปแบบเก่าที่คล้ายกัน (ไม่มีการบันทึกอัตโนมัติ) กับวิธีการทำงานในเวอร์ชันก่อนหน้าคุณสามารถอัปเดตตัวเลือกการกำหนดค่าเพื่อเปิดใช้งานการบันทึกอัตโนมัติได้ด้านล่าง

npm config set save false

เพื่อรับการตั้งค่าปัจจุบันคุณสามารถดำเนินการคำสั่งต่อไปนี้:

npm config get save

ที่มา: https://blog.pusher.com/what-you-need-know-npm-5/


6

npm install package_x --save

แพคเกจที่กำหนด (package_x) จะถูกบันทึกใน package.json ภายในการอ้างอิง ถ้าคุณเพิ่ม

npm install <<package_x>> --save-dev

แล้วมันจะถูกบันทึกไว้ภายในdevDependencies


12
คำตอบของคุณช่วยอะไรที่คำตอบอื่น ๆ ยังไม่ได้กล่าวถึง
เปโดร A

@Pedro A - ความสงสัยของฉันคือคนที่เขียนสิ่งที่เขาเพิ่งอ่าน; จากนั้นให้เพื่อนของเขายอมแพ้
IAM_AL_X

3

วิธีที่ง่ายขึ้น (และยอดเยี่ยมยิ่งขึ้น) ในการเพิ่มการพึ่งพา package.json ของคุณคือการทำเช่นนั้นจากบรรทัดคำสั่งการตั้งค่าสถานะคำสั่งการติดตั้ง npm ด้วย - บันทึกหรือ - บันทึก - dev ขึ้นอยู่กับวิธีที่คุณต้องการ ใช้การพึ่งพานั้น


3

npm install --saveหรือnpm install --save-devทำไมเราเลือก 1 ตัวเลือกระหว่างสองตัวนี้ขณะติดตั้งแพ็คเกจในโครงการของเรา

สิ่งที่เห็นได้ชัดจากคำตอบข้างต้นที่npm install --saveจะเพิ่มรายการในdependencyเขตข้อมูลในpacakage.jsonแฟ้มและอื่น dev-dependency

ดังนั้นคำถามที่เกิดขึ้นว่าทำไมเราต้องการรายการโมดูลการติดตั้งของเราในไฟล์ pacakge.json เพราะเมื่อใดก็ตามที่เราเช็คอินโค้ดgitหรือให้โค้ดของเรากับบางคนเรามักจะให้มันหรือตรวจสอบโดยไม่ต้องnode-modulesเพราะมันมีขนาดใหญ่มากและยัง สถานที่ทั่วไปเพื่อหลีกเลี่ยงสิ่งนี้เราทำเช่นนั้น

ดังนั้นวิธีที่บุคคลอื่นจะได้รับโมดูลทั้งหมดที่เฉพาะเจาะจงหรือจำเป็นสำหรับโครงการนั้นดังนั้นคำตอบคือfrom the package.jsonไฟล์ที่มีรายการแพ็กเกจที่จำเป็นทั้งหมดสำหรับการเรียกใช้หรือพัฒนาโครงการนั้น

ดังนั้นหลังจากได้we simply need to run the npm installรับคำสั่งcode มันจะอ่านไฟล์ package.json และติดตั้งแพ็คเกจที่จำเป็น


2

npm i (ชื่อแพ็คเกจ) - บันทึก

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

npm ช่วยติดตั้ง

คำสั่งด้านบนจะช่วยค้นหาตัวเลือกเพิ่มเติมและแก้ไข def.shown ในรูป ป้อนคำอธิบายรูปภาพที่นี่

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