อะไรคือความแตกต่างระหว่าง --save และ --save-dev?


747

อะไรคือความแตกต่างระหว่าง:

npm install [package_name] --save

และ:

npm install [package_name] --save-dev

สิ่งนี้หมายความว่า?


4
ใช่ฉันสับสนเกี่ยวกับเรื่องนี้ - ถ้าคุณใช้การรวมอย่างต่อเนื่องเช่นเจนกินส์เจนกินส์รู้หรือไม่ว่าจะใช้โมดูล devDependencies สำหรับการทดสอบการทำงาน? ฉันคิดอย่างนั้น แต่มันก็ไม่ชัดเจน
Alexander Mills

5
อาจแก้ไขคำถามเพื่อบอกว่าอะไรคือความแตกต่างของหน้าที่การทำงานระหว่างการพึ่งพาและการพึ่งพา
Alexander Mills

5
แพคเกจติดตั้งผ่านตัวเลือก --save-dev npm install --productionไม่ได้ติดตั้งใหม่เมื่อผู้ใช้รัน นั่นคือความแตกต่างในการปฏิบัติงาน (ดูhttps://docs.npmjs.com/cli/installสำหรับข้อมูลเพิ่มเติม)
Andrew

7
@ MuhammadUmer นั่นเป็นเหตุผลว่าทำไมคนถึงถามคำถามตรงนี้ - เพื่อที่จะ 'รับเบาะแส' บางทีการเพิ่มคำตอบจริง ๆ อาจจะให้ผลดีกว่า - นี่คือความแตกต่างที่น่าสนใจอย่างแน่นอนที่ฉันไม่รู้
Simon_Weaver

3
ถ้าคุณตั้งค่าตัวแปรสภาพแวดล้อมNODE_ENVเป็นการผลิตแล้วเพียงแค่ npm installไม่รวมแพ็คเกจการพัฒนาโดยอัตโนมัติ
มูฮัมหมัดอูเมอร์

คำตอบ:


591
  • --save-devใช้เพื่อบันทึกแพ็กเกจเพื่อการพัฒนา ตัวอย่าง: การทดสอบหน่วย, การลดขนาด ..
  • --save ใช้เพื่อบันทึกแพ็กเกจที่จำเป็นสำหรับแอปพลิเคชันเพื่อเรียกใช้

150
แตกต่างกันอย่างไร เมื่อไหร่ที่ฉันจะใช้อันหนึ่งกับอีกอันหนึ่ง? ฉันยังสามารถใช้มันเป็นแพ็คเกจในการผลิตได้หรือไม่ถ้ามันอยู่ภายใต้ --save-dev?
Dave Voyles

14
คำตอบอย่างกระชับตอบคำถามสองข้อแรกของคุณ คำตอบสำหรับคำถามสุดท้าย "ฉันยังสามารถใช้บรรจุภัณฑ์ในการผลิตได้หรือไม่หากอยู่ภายใต้ --save-dev" คือ "ไม่" แม้ว่ามันจะเป็นไปได้ที่จะทำเช่นนี้ แต่ก็ไม่ได้มีไว้
Technetium

61
เวอร์ชั่นย่อ: -Dสั้น--save-devและ-Sสั้นสำหรับ--save
chrisco

164
คำตอบนี้คลุมเครือ แม้แต่ตัวอย่างเล็ก ๆ ก็อาจช่วยให้ชัดเจนขึ้นได้
Choylton B. Higginbottom

33
โปรดทราบว่าตั้งแต่ npm เวอร์ชั่น 5.0.0 --saveตัวเลือกไม่จำเป็นอีกต่อไป หากคุณทำเช่นnpm install my-packageนั้นจะเพิ่ม "my-package" เป็นการอ้างอิงในไฟล์ package.json
Martin Carel

642

ความแตกต่างระหว่าง--saveและ--save-devอาจไม่สามารถสังเกตเห็นได้ทันทีหากคุณลองทั้งสองอย่างในโครงการของคุณเอง ดังนั้นนี่คือตัวอย่างเล็ก ๆ น้อย ๆ ...

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

npm install moment --save

สิ่งนี้จะสร้างค่าใหม่ใน package.json ของคุณ

"dependencies": {
   ...
   "moment": "^2.17.1"
}

เมื่อคุณมีการพัฒนาจริงๆมันจะช่วยให้การใช้เครื่องมือเช่นห้องทดสอบและอาจจำเป็นต้องมะลิ-coreและกรรม ในกรณีนี้คุณจะใช้

npm install jasmine-core --save-dev
npm install karma --save-dev

สิ่งนี้จะสร้างค่าใหม่ใน package.json ของคุณ

"devDependencies": {
    ...
    "jasmine-core": "^2.5.2",
    "karma": "^1.4.1",
}

คุณไม่จำเป็นต้องมีชุดทดสอบเพื่อเรียกใช้แอปในสถานะปกติดังนั้นจึงเป็น--save-devประเภทที่ต้องพึ่งพาอาศัยกันจึงไม่มีอะไรเพิ่มเติม คุณสามารถดูว่าถ้าคุณไม่เข้าใจสิ่งที่เกิดขึ้นจริง ๆ มันเป็นเรื่องยากที่จะจินตนาการ

ถ่ายโดยตรงจากเอกสาร NPM docs # dependencies

การอ้างอิง

การอ้างอิงที่ระบุไว้ในวัตถุอย่างง่ายที่แมปชื่อแพคเกจไปยังช่วงรุ่น ช่วงของเวอร์ชันเป็นสตริงที่มีหนึ่ง descriptors คั่นด้วยช่องว่าง การอ้างอิงสามารถระบุได้ด้วย tarball หรือ git URL

โปรดอย่าใส่สายรัดทดสอบหรือตัวส่งสัญญาณในวัตถุอ้างอิงของคุณ ดู devDependenciesด้านล่าง

แม้แต่ในเอกสารมันก็ขอให้คุณใช้ - บันทึก -ev สำหรับโมดูลเช่นสายรัดทดสอบ

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


15
IMO ฉันคิดว่าคำหลัก 'บันทึก' เป็นปัญหา เหตุใดพวกเขาจึงไม่สร้างแฟล็ก -dev สำหรับการพัฒนาและ -deploy สำหรับการปรับใช้ มันสมเหตุสมผลกว่าคำหลัก 'บันทึก'
Thinh Vu

1
เหตุใดแพคเกจจึงไม่ทราบ (ตัดสินใจ) ถ้าเป็นแพ็กเกจรีลีสหรือแพ็กเกจ dev และ - ใช้ทั้งคู่ ดูเหมือนว่าแปลกที่จะทำให้ผู้ใช้ติดตั้งตัดสินใจในเรื่องนี้เมื่อผู้พัฒนาแพ็คเกจสร้างความตั้งใจ
CodeGrue

4
CodeGrue ถ้าคุณใช้ jQuery เพียงเพื่อทดสอบส่วนประกอบ React มันจะไปอยู่ใน save-dev แต่คุณอาจไม่ได้ใช้มันเพื่อสร้างโครงการหลักของคุณ ใช่มันเป็นไปได้ เหตุใดผู้บรรจุจึงรู้ว่าคุณกำลังทำอะไรอยู่
Michael Bruce

2
ชัดเจนยิ่งขึ้น ฉันเป็นคนที่ฝังตัวเรียนรู้ขั้นตอนการทำงานของ Bootstra + Node.js เป็นครั้งแรก ไม่ชัดเจนว่าข้อแตกต่างคืออะไรจากข้อมือ
Leroy105

3
@YakovL save-dev หมายถึงแพ็คเกจที่ไม่ได้ติดตั้งเมื่อมีคนอื่นติดตั้งแพคเกจของคุณเป็นการอ้างอิง แพคเกจที่ใช้เพื่อเรียกใช้สคริปต์เช่น start / build เท่านั้นจะไม่จำเป็นในกรณีนั้นดังนั้นจึงมีการอ้างอิง dev หากคุณกำลังทำงานกับเว็บแอปและไม่ได้อยู่ในแพ็คเกจสำหรับการใช้งานโดยผู้อื่นคุณอาจไม่ต้องกังวลกับมันเลย
riv

111

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

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

--saveเพิ่มแพ็คเกจบุคคลที่สามเป็นการอ้างอิงของแพ็คเกจ npm install packageมันจะได้รับการติดตั้งพร้อมกับแพคเกจเมื่อใดก็ตามที่มีคนวิ่ง

Dev dependencies คือการพึ่งพาที่จำเป็นสำหรับการพัฒนาแพ็คเกจเท่านั้น ซึ่งอาจรวมถึงนักวิ่งทดสอบคอมไพเลอร์ผู้ทำหีบห่อ ฯลฯ การอ้างอิงทั้งสองประเภทจะถูกเก็บไว้ในpackage.jsonไฟล์ของแพ็คเกจ --saveเพื่อเพิ่มdependencies, --save-devเพิ่มให้กับdevDependencies

สามารถดูเอกสารการติดตั้ง npmได้ที่นี่


37
ฉันสงสัยว่าสิ่งนี้ ... คุณสามารถใช้ - บันทึก -dev และ - บันทึกสลับกันได้หากคุณสร้างแอปพลิเคชันเว็บที่จะไม่กลายเป็นแพคเกจเช่นดาวน์โหลดจาก npm หากคุณกำลังพัฒนาแพคเกจเพื่อแบ่งปันกับคนอื่น ๆ มัน เป็นสิ่งสำคัญที่จะเข้าใจความแตกต่าง
VFein

13
ขอบคุณในที่สุดคนที่บอกว่ามันมีจุดประสงค์เมื่อคุณใช้การติดตั้ง npm
CapturedTree

3
- บันทึกเป็นค่าเริ่มต้นด้วยการติดตั้ง npm ด้วยการเปิดตัว npm 5 ในปี 2017
NattyC

รอทำไมต้องใช้ประโยคที่ซับซ้อน ในนักพัฒนา DevDependecy สามารถติดตั้งแพ็คเกจและมันจะถูกปรับปรุง devDevependency เท่านั้น ดังนั้นเมื่อนักพัฒนาใหม่โคลนโครงการ codebase และรัน npm install => ที่นี่เฉพาะdependency package name is going to install.ใน node_modules .. ไม่ใช่แพ็คเกจของนักพัฒนาเช่นเดียวกับในการพึ่งพา Dev
Anupam Maurya

60

ตัวอย่างที่สมบูรณ์แบบของสิ่งนี้คือ:

$ npm install typescript --save-dev

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


4
สิ่งเดียวกันนี้สำหรับ: "$ npm install grunt --save-dev" เนื่องจากมีประโยชน์สำหรับการพัฒนา แต่ไม่ใช่สำหรับการปรับใช้
Jackalope

1
หมายเหตุด้าน: Microsoft แนะนำให้ติดตั้ง @ types / xxx แพ็คเกจเป็นการอ้างอิงไม่ใช่ devDependencies github.com/Microsoft/types-publisher/issues/81
เดฟ

2
สิ่งที่ฉันสับสนคือเรื่องนี้เกิดขึ้นได้อย่างไร? แพคเกจที่บันทึกโดยใช้--saveจะยังคงบันทึกในnode_modulesโฟลเดอร์เท่านั้น รหัสไม่รวมอยู่ในเว็บไซต์ที่ใช้งาน
Kokodoko

6
@Kokodoko เมื่อคุณใช้--save-devแฟล็กแพคเกจจะถูกเพิ่มไปยังdevDependenciesวัตถุของคุณ ถ้า / เมื่อมีคนติดตั้งแพคเกจของคุณทั้งหมดdependenciesจะถูกดาวน์โหลด แต่devDependenciesไม่ใช่เพราะพวกเขาไม่จำเป็นต้องใช้ในขณะใช้งานจริง ตามที่ระบุไว้คำตอบนี้ช่วยประหยัดเวลาและพื้นที่ นักพัฒนาที่ทำงานกับไฟล์แพ็กเกจของคุณสามารถทำงานnpm installภายในไดเรคทอรีแพ็คเกจเพื่อติดตั้งได้devDependenciesเช่นกัน
Jasjit Singh Marwah

ดังนั้นถ้าคุณดาวน์โหลด repo จาก GitHub และประเภทnpm installที่devDependenciesจะถูกละเลย?
Kokodoko

41

ขอยกตัวอย่าง

  • คุณเป็นนักพัฒนาของมากร้ายแรง NPM ห้องสมุด ซึ่งใช้ไลบรารีการทดสอบที่แตกต่างกันเพื่อทดสอบแพ็คเกจ
  • ผู้ใช้ดาวน์โหลดไลบรารีของคุณและต้องการใช้ในรหัสของพวกเขา พวกเขาจำเป็นต้องดาวน์โหลดไลบรารี่ทดสอบของคุณหรือไม่? บางทีคุณอาจจะใช้สำหรับการทดสอบและพวกเขาใช้jest mochaคุณต้องการให้พวกเขาติดตั้งjestเช่นกัน? เพียงเพื่อเรียกใช้ห้องสมุดของคุณ?

ไม่มีสิทธิ์? นั่นเป็นสาเหตุที่พวกเขาdevDependenciesมา

เมื่อมีคนทำnpm i yourPackageเฉพาะไลบรารีที่จำเป็นสำหรับRUNเท่านั้นไลบรารีของคุณจะถูกติดตั้ง ห้องสมุดอื่น ๆ devDependenciesที่คุณใช้ในการมัดรหัสของคุณมีหรือทดสอบและการเยาะเย้ยจะไม่สามารถติดตั้งเพราะคุณใส่ไว้ใน ค่อนข้างเรียบร้อยใช่มั้ย

ดังนั้นทำไมนักพัฒนาจำเป็นต้องเปิดเผยการพึ่งพา ?

สมมติว่าแพคเกจของคุณเป็นโอเพ่นซอร์สแพคเกจและมีผู้คน 100 คนกำลังส่งคำขอดึงไปยังแพ็คเกจของคุณ แล้วพวกเขาจะทดสอบแพ็คเกจอย่างไร พวกเขาจะgit cloneซื้อคืนของคุณและเมื่อพวกเขาจะทำอ้างอิงเช่นเดียวกับdevDependencies เพราะพวกเขาไม่ได้ใช้แพ็คเกจของคุณ พวกเขากำลังพัฒนาบรรจุภัณฑ์เพิ่มเติมดังนั้นเพื่อทดสอบแพ็คเกจของคุณพวกเขาจำเป็นต้องผ่านกรณีทดสอบที่มีอยู่แล้วเช่นกันเขียนใหม่ ดังนั้นพวกเขาจำเป็นต้องใช้ของคุณซึ่งมีไลบรารีการทดสอบ / การสร้าง / การเยาะเย้ยทั้งหมดที่คุณใช้npm i
devDependencies


8
ดีกว่าคำตอบที่ได้รับการยอมรับเช่นเดียวกับคำตอบด้วยคะแนนโหวตสูงสุดเพราะคำตอบนี้เป็นจริงในทางปฏิบัติ ขอบคุณ!
Uncaught Exception

นี่ควรเป็นคำตอบที่เลือก คำตอบอื่น ๆ ทั้งหมดไม่ได้อธิบายอย่างแท้จริงว่าทำไมคุณถึงต้องใช้อีกคำหนึ่ง
Rocky Kev

34

ตามที่แนะนำโดย @ andreas-hultgren ในคำตอบนี้และอ้างอิงจากเอกสาร npm :

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

อย่างไรก็ตามสำหรับการพัฒนา webapp, เสรีชน (เครื่องมือนั่งร้านที่ติดตั้งแฟ้ม package.json peer-reviewed ที่เขียนไว้ล่วงหน้าในหมู่สิ่งอื่น ๆ ) สถานที่แพคเกจทั้งหมดใน devDependencies และไม่มีอะไรในการอ้างอิงดังนั้นจึงปรากฏว่าการใช้--save-devเป็นเดิมพันที่ปลอดภัย ในwebappการพัฒนาอย่างน้อย


3
โปรดทราบว่าฉันมีปัญหาเมื่อใช้อึกและติดตั้งแพคเกจด้วย--save-devที่แพคเกจจะไม่ติดตั้งพึ่งพาที่จำเป็น กำลังเรียกใช้การ--saveติดตั้งการพึ่งพาที่ขาดหายไปเหล่านั้น
Nick M

18
ฉันยังต้องการที่จะทราบว่าตอนนี้ฉันใช้--saveสำหรับทั้งหมดยกเว้นการทดสอบและการอ้างอิงเอกสาร (ตามเอกสาร npm) ฉันเริ่มคิดว่าตัวอย่างแบบเสรีชนที่ฉันกล่าวถึงข้างต้นไม่ใช่ตัวอย่างที่ดีของแนวปฏิบัติที่ดีที่สุด
wayfarer_boy

ผมคิดว่าอย่างนั้นเหมือนกันจะทำไมคุณเคยจำเป็นต้อง--save-devเป็นเพียงกลายเป็นน้อยชัดเจนกับทุกคำตอบที่นี่ :)
Kokodoko

20

--save-devบันทึกข้อมูลจำเพาะ semver ลงในอาร์เรย์ "devDependencies" ในไฟล์อธิบายแพคเกจของคุณ--saveบันทึกลงใน "การอ้างอิง" แทน


83
และฟังก์ชั่นต่างกันอย่างไร
ahnbizcad

6
คำตอบนี้เหมาะสมกับฉันมากที่สุดแล้ว devDependencies นั้นจำเป็นสำหรับการพัฒนา แต่ไม่ใช่การผลิตดังนั้น htmllint, sass compilation ฯลฯ และ Dependencies สำหรับความต้องการการผลิตเช่น Diaporama ที่จะต้องนำเสนอเพื่อให้สิ่งต่างๆทำงาน
มิลเลอร์กอริลลา

3
@ahnbizcad มันตอบได้ดีกว่าที่นี่แต่ความแตกต่างของฟังก์ชั่นหลักคือ devDependencies ไม่รวมอยู่ในระหว่างการขนส่ง
Pace

ไม่ใช่วิธีที่ง่ายที่สุดในการอธิบายสำหรับคนที่ยังไม่ทราบใช่มั้ย: Dev --save-devทำแพ็กเกจโลคัลให้กับโปรเจ็กต์ของคุณขณะที่--saveทำให้เป็นโลคัลสำหรับการติดตั้งโหนด
ahnbizcad

9

ให้คำตอบที่ชัดเจนแล้ว แต่มันก็คุ้มค่าที่จะพูดถึงว่าจะdevDependenciesมีผลต่อการติดตั้งแพ็คเกจอย่างไร:

โดยค่าเริ่มต้นการติดตั้ง npm จะติดตั้งโมดูลทั้งหมดที่แสดงรายการเป็นการพึ่งพาใน package.json ด้วยแฟล็ก --production (หรือเมื่อตัวแปรสภาวะแวดล้อม NODE_ENV ถูกตั้งค่าเป็นการผลิต) npm จะไม่ติดตั้งโมดูลที่แสดงรายการใน devDependencies

โปรดดู: https://docs.npmjs.com/cli/install


8

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

ใช้ตัวเลือก--save-dev(หรือ-D) เพื่อแยกแพคเกจเช่นกรอบการทดสอบหน่วย (ตัวตลก, จัสมิน, มอคค่า, ชัย ฯลฯ )

แพ็คเกจอื่น ๆ ที่แอพของคุณต้องการสำหรับการผลิตควรติดตั้งโดยใช้--save(หรือ-S)

npm install --save lodash       //prod dependency
npm install -S moment           // "       "
npm install -S opentracing      // "       "

npm install -D jest                 //dev only dependency
npm install --save-dev typescript   //dev only dependency

หากคุณเปิดpackage.jsonไฟล์คุณจะเห็นรายการเหล่านี้อยู่ในสองส่วนที่แตกต่างกัน:

"dependencies": {
  "lodash": "4.x",
  "moment": "2.x",
  "opentracing": "^0.14.1"
},

"devDependencies": {
    "jest": "22.x",
    "typescript": "^2.8.3"
},

5

--save-devใช้สำหรับโมดูลที่ใช้ในการพัฒนาแอพพลิเคชั่นไม่จำเป็นต้องใช้ในขณะที่ใช้งานใน envionment การผลิต - ประหยัดใช้เพื่อเพิ่มลงใน package.json และมันจำเป็นสำหรับการรันแอปพลิเคชัน

ตัวอย่าง: express, body-parser, lodash, หมวกนิรภัย, mysql ทั้งหมดนี้ถูกใช้ในขณะที่ใช้งานแอพพลิเคชั่น - บันทึกเพื่ออ้างอิงขณะที่มอคค่า, อิสตันบูล, ชัย, sonarqube-scanner ทั้งหมดถูกนำมาใช้ในการพัฒนา - พึ่งพา

ลิงก์ npm หรือการติดตั้ง npm จะติดตั้งโมดูล dev-dependency พร้อมกับโมดูลพึ่งพาในโฟลเดอร์โครงการของคุณ


3

คำอธิบายทั้งหมดที่นี่ยอดเยี่ยม แต่ขาดสิ่งที่สำคัญมาก: คุณจะติดตั้งการพึ่งพาการผลิตได้อย่างไร (ไม่มีการพึ่งพาการพัฒนา) เราแยกdependenciesจากdevDependenciesโดยใช้หรือ--save --save-devในการติดตั้งทั้งหมดที่เราใช้:

npm i

เพื่อติดตั้งเฉพาะแพ็คเกจการผลิตที่เราควรใช้:

npm i --only=production

0

ฉันต้องการเพิ่มความคิดของฉันเป็น

ฉันคิดว่า differents ทั้งหมดจะปรากฏขึ้นเมื่อมีคนใช้รหัสของคุณแทนที่จะใช้ด้วยตัวเอง

ตัวอย่างเช่นคุณเขียนไลบรารี HTTP ที่ชื่อ node's request

ในห้องสมุดของคุณ

คุณใช้ lodash เพื่อจัดการสตริงและวัตถุโดยไม่มี lodash รหัสของคุณจะไม่สามารถทำงานได้

หากมีคนใช้ไลบรารี HTTP ของคุณเป็นส่วนหนึ่งของรหัสของเขา รหัสของคุณจะถูกรวบรวมกับเขา

รหัสของคุณต้องการ lodash ดังนั้นคุณต้องใส่dependenciesเพื่อคอมไพล์


หากคุณเขียนโครงการเช่นmonaco-editorซึ่งเป็นบรรณาธิการเว็บ

คุณได้รวมรหัสทั้งหมดของคุณและการproduct env libraryใช้ webpack ของคุณเมื่อสร้างเสร็จสมบูรณ์มีเพียงmonaco-min.js

ดังนั้นใครบางคนไม่ว่าจะเป็น--saveหรือว่า--save-dependenciesเขาต้องการเพียงmonaco-min.js

สรุป:

  1. หากมีคนต้องการรวบรวมรหัสของคุณ (ใช้เป็นห้องสมุด) ให้ใส่lodashรหัสของคุณลงไปdependencies

  2. หากมีคนต้องการเพิ่มคุณสมบัติเพิ่มเติมให้กับรหัสของคุณเขาต้องการunit testและcompilerใส่สิ่งเหล่านี้ลงในdev-dependencies


0

ผู้คนใช้ npm ในการผลิตเพื่อทำสิ่งเท่ห์ ๆ Node.js เป็นตัวอย่างของสิ่งนี้ดังนั้นคุณไม่ต้องการให้เครื่องมือ dev ทั้งหมดของคุณทำงาน

หากคุณใช้อึก (หรือคล้ายกัน) เพื่อสร้างไฟล์บิวด์เพื่อวางบนเซิร์ฟเวอร์ของคุณก็ไม่เป็นไร

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