-save-dev หมายถึงอะไรในการติดตั้ง grunt - save-dev


277

ผมได้เริ่มต้นเพียงแค่ใช้Grunt.js มันค่อนข้างยากในการตั้งค่าและฉันอยู่ที่จุดของการสร้างpackage.jsonไฟล์

การทำตามบทช่วยสอนนี้ระบุว่ามี 3 วิธีในการสร้างpackage.jsonไฟล์

อย่างแรกคือการทำ npm install grunt --save-dev

แต่--save-devหมายความว่าอย่างไร ฉันพยายามมองหา แต่มันก็ไร้ประโยชน์


ฉันคิดว่าฉันสามารถหาคำตอบได้ gruntjs.com/getting-started - npmjs.org/doc/json.html#devDependencies
Vennsoh

ลิงก์การสอนเสียหาย
SteveC

คำตอบ:


317

- บันทึก -ev: แพคเกจจะปรากฏในการอ้างอิงของคุณ

ตามที่NPM ติดตั้งเอกสาร

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

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

ตามpackage.json เอกสาร

แก้ไข: พยายามมองภาพสิ่งที่npm installทำ:

  • yourproject
    • ติดตั้งการพึ่งพา
      • ติดตั้งการพึ่งพา
        • ติดตั้งการพึ่งพา
        • devDependency ไม่ได้ติดตั้ง
      • devDependency ไม่ได้ติดตั้ง
    • ติดตั้ง devDependency
      • ติดตั้งการพึ่งพา
      • devDependency ไม่ได้ติดตั้ง

2
โดยค่าเริ่มต้นจะไม่ติดตั้งกับการพึ่งพา dev แต่ฉันจะติดตั้งด้วยแล้ว? npm install --devธง?
StanleyZheng

4
@stanzheng ฉันไม่แน่ใจว่าสิ่งที่คุณต้องรู้ หากคุณอยู่ในโครงการและดำเนินnpm installการ devDependencies ของโครงการจะถูกติดตั้งด้วย คุณไม่ต้องการการติดตั้ง devDependencies ของการพึ่งพา หากคุณต้องการที่จะพัฒนาในแพคเกจ NPM คุณต้องการgit clone xxxโครงการที่และทำงานnpm installอยู่ในนั้น
Andreas Hultgren

3
"devDependencies สำหรับการพึ่งพาแอปของคุณจะไม่ถูกติดตั้งเมื่อคุณเรียกใช้การติดตั้ง npm" ไม่ถูกต้อง ถ้าฉันมี package.json และมันมีเพียง "devDependencies" กับแพ็คเกจ npm ของฉันและฉันพิมพ์ "npm install" "devDependecies" เหล่านั้นจะได้รับการติดตั้ง
คอร์

6
ฉันพยายามเข้าใจ แต่ไม่เข้าใจ จากนั้นฉันก็พยายามที่จะเข้าใจการสร้างภาพและไม่ได้ทำ รายการหัวข้อย่อยแต่ละรายการมีความหมายว่าอย่างไร โฟลเดอร์หรือไม่? รายการขีดทับหมายถึงอะไร ไดเรกทอรีที่ไม่มีอยู่? หากเป็นจริงคุณจะแสดงรายการสิ่งที่ไม่มีอยู่อย่างละเอียดได้อย่างไร
Rafael Eyng

8
เพื่อชี้แจงหากnpm installทำงานในโครงการของคุณ devDependencies ทั้งหมดใน package.json จะถูกติดตั้ง แต่ถ้าคุณทำแพ็กเกจโครงการของคุณเป็นแพ็กเกจ npm ใหม่และเผยแพร่เมื่อบุคคลอื่นติดตั้งแพ็กเกจของคุณด้วยการติดตั้ง npm devDependencies จะไม่ ติดตั้งในระบบของพวกเขา นั่นถูกต้องใช่ไหม? @stanzheng หรือคุณสามารถเรียกใช้การติดตั้ง npm - การผลิตเพื่อติดตั้งทุกอย่างใน package.json ยกเว้นการพึ่งพา dev
rwilson04

99

มีการพึ่งพาแพคเกจสองประเภท (อย่างน้อย) ประเภทที่คุณสามารถระบุในไฟล์ package.json ของคุณ:

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

    npm install --save packageName
  2. แพคเกจเหล่านั้นจำเป็นต้องมีเพื่อช่วยในการพัฒนาโมดูลของคุณอยู่ในรายการภายใต้คุณสมบัติ "devDependencies" แพ็คเกจเหล่านี้ไม่จำเป็นสำหรับผู้อื่นที่จะใช้โมดูล แต่หากพวกเขาต้องการที่จะช่วยพัฒนาโมดูลแพคเกจเหล่านี้จะต้อง การใช้ npm คุณสามารถเพิ่ม devDependencies เหล่านั้นไปยังไฟล์ package.json ของคุณด้วยวิธีนี้:

    npm install --save-dev packageName

35

เพื่อเพิ่มคำตอบของ Andreas คุณสามารถติดตั้งเฉพาะการอ้างอิงโดยใช้:

npm install --production

7

เอกสารจาก npm สำหรับnpm install <package-name> --saveและnpm install <package-name> --save-devสามารถพบได้ที่นี่:

https://docs.npmjs.com/getting-started/using-a-package.json#the-save-and-save-dev-install-flags

package.jsonไฟล์ประกาศเกี่ยวกับเมตาดาต้าโมดูลที่คุณกำลังพัฒนา ทั้งสองคำสั่งดังกล่าวแก้ไขpackage.jsonไฟล์นี้ --saveจะประกาศแพ็คเกจที่ติดตั้ง (ในกรณีนี้grunt) เป็นการอ้างอิงสำหรับโมดูลของคุณ --save-devจะประกาศว่าเป็นการพึ่งพาสำหรับการพัฒนาโมดูลของคุณ

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


6

เมื่อคุณใช้พารามิเตอร์ "- บันทึก" การอ้างอิงของคุณจะอยู่ใน # 1 ด้านล่างใน package.json เมื่อคุณใช้พารามิเตอร์ "--save-dev" การพึ่งพาของคุณจะอยู่ใน # 2 ด้านล่างใน package.json

# 1 "การพึ่งพา": แพคเกจเหล่านี้จำเป็นสำหรับแอปพลิเคชันของคุณในการผลิต

# 2 "devDependencies": แพ็คเกจเหล่านี้จำเป็นสำหรับการพัฒนาและทดสอบเท่านั้น


5

สำหรับฉันคำตอบแรกดูเหมือนสับสนเล็กน้อยดังนั้นเพื่อให้สั้นและสะอาด:

npm install <package_name>ช่วยประหยัดแพคเกจที่กำหนดใด ๆ ลงในการอ้างอิงโดยค่าเริ่มต้น นอกจากนี้คุณสามารถควบคุมตำแหน่งและวิธีการบันทึกด้วยค่าสถานะเพิ่มเติม:

npm install <package_name> --no-save ป้องกันการบันทึกเพื่อการอ้างอิง

npm install <package_name> ---save-devอัพเดตdevDependenciesในแพ็คเกจของคุณ สิ่งเหล่านี้ใช้สำหรับการทดสอบและการพัฒนาในท้องถิ่นเท่านั้น

คุณสามารถอ่านเพิ่มเติมได้ที่dcu

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