วิธีการติดตั้งเฉพาะ“ devDependencies” โดยใช้ npm


93

ฉันกำลังพยายามติดตั้งเฉพาะ "devDependencies" ที่อยู่ในไฟล์ package.json ของฉัน แต่ไม่มีคำสั่งต่อไปนี้ทำงานตามที่ฉันคาดหวัง คำสั่งต่อไปนี้ทั้งหมดจะติดตั้งการอ้างอิงการผลิตซึ่งฉันไม่ต้องการด้วย

npm install --dev
npm install --only=dev
npm install --only-dev

ฉันไม่สามารถคิดถึงวิธีการอื่น ๆ ในการบอกให้ npm ติดตั้ง devDependencies เพียงอย่างเดียว :(


ณ วันนี้ - npm WARN install การใช้งาน--devตัวเลือกนี้เลิกใช้แล้ว ใช้--only=devแทน
Andriy Leshchuk

คำตอบ:


143

ตรวจสอบเอกสาร NPM สำหรับการติดตั้ง :

ด้วย--productionธง (หรือเมื่อNODE_ENVตัวแปรสภาพแวดล้อมมีการตั้งค่าการผลิต), NPM devDependenciesจะไม่ติดตั้งโมดูลที่ระบุไว้ใน

--only={prod[uction]|dev[elopment]}อาร์กิวเมนต์จะทำให้เกิดการอย่างใดอย่างหนึ่งเท่านั้น devDependencies หรือเฉพาะ devDependencies ไม่ใช่ที่จะติดตั้งโดยไม่คำนึงถึง NODE_ENV

คุณได้ลองทำสิ่งต่อไปนี้แล้วหรือยัง?

npm install --only=dev

10
ตอนนี้ฉันพบว่าเวอร์ชัน npm ของฉันคือ 2.x ฉันอัปเกรดเป็น v3.x โดยเรียกใช้คำสั่งnpm install npm -gและตัวเลือก--only = devทำงานได้อย่างมีเสน่ห์ ขอบคุณสำหรับการตอบกลับ
Nesan Rajendran

ปัญหารุ่นที่กล่าวถึงโดย @NesanJoseph ก็เป็นปัญหาในกรณีของฉันเช่นกัน ในเวอร์ชันเก่าของ npm npm install --prodใช้เพื่อติดตั้งรายการจากdependenciesโฟลเดอร์ ทั้งสองnpm installและnpm install --devใช้เพื่อติดตั้งจากทั้งในdependenciesและdevDependenciesโฟลเดอร์!
Shiyaz

ฉันได้รับปัญหาเดียวกันที่ @ricka กล่าวถึงโดยใช้ nvm เพื่อรันโหนด v 10.9.0 และ npm v 6.4.1 (ทั้งสองเวอร์ชันล่าสุด ณ วันที่ 10/18) และการใช้ --only = dev ยังคงติดตั้งการอ้างอิงแอปเช่นกัน . โดยทั่วไปแฟล็กการติดตั้ง npm จะไร้ประโยชน์ 100% ณ จุดนี้
Henry

ไม่ทำงานสำหรับฉัน (โหนด v12.19.0, npm v6.14.8) บางทีอาจมีส่วนเกี่ยวข้องกับปัญหานี้ที่เปิดตั้งแต่เมษายน 2016: github.com/npm/npm/issues/12184
Fapaz

23
npm install thePackageName --save-dev

วิธีนี้ใช้ได้ดีสำหรับฉัน


4
--save-devบันทึกแพ็กเกจลงใน devDependencies ใน package.json
Rashomon

1
--save-dev มีไว้เพื่อตั้งค่าสถานะว่าแพ็คเกจที่ติดตั้งจะถูกติดตั้งภายใต้ devDependencies
Daniel Dubovski

3
เพิ่มเติมเช่นnpm install thePackageName --save-dev
Deke

4
สิ่งนี้จะติดตั้งชื่อที่ชัดเจนของแพ็กเกจเดียวและบันทึกลงในการพึ่งพาผู้พัฒนา คำถามคือเกี่ยวกับวิธีการติดตั้งเฉพาะ devDependencies จาก package.json
Lalnuntluanga Chhakchhuak

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

20
npm i -D

เวอร์ชันย่อที่เป็นทางเลือก


ใช่ฉันได้ทำnpm install -Dและมันได้ผล ดังนั้นฉันจึงประหลาดใจและ googled สิ่งนี้หลังจากหลายคำตอบฉันเห็นคำตอบของคุณ :)
its4zahoor

2

เล่นnpm installมันจะติดตั้งการอ้างอิงทั้งหมดภายใต้devDependencies `หรือการอ้างอิง

สำหรับการติดตั้งและบันทึกแพ็กเกจเป็นการพึ่งพา dev ใน package.json npm install package_name --save-devหรืออ็อพชัน pass-D

สำหรับการติดตั้งแพคเกจทั้งหมดภายใต้devDependencies , npm install --only=dev

สำหรับการติดตั้งและบันทึกแพ็คเกจเป็น prod หรืออ้างอิงเฉพาะใน package.json npm install package_name --save-prodหรือ pass option -Pหรือnpm install package_name

สำหรับการติดตั้งแพ็กเกจทั้งหมดภายใต้การอ้างอิงหรือการอ้างอิงProdให้ตั้งค่าตัวแปรสภาพแวดล้อมNODE_ENV=productionหรือส่งผ่านด้วยคำสั่ง NODE_ENV=production npm installหรือnpm install --only=prod

แทนที่จะใช้installในคำสั่ง npm เช่นเดียวกับที่npm installคุณสามารถใช้iเช่นnpm iนั้นสั้นการติดตั้ง

ข้อมูลอ้างอิง

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