เป็นไปได้หรือไม่ที่จะระบุไดเรกทอรีเป้าหมายเมื่อทำงานnpm install <package>
?
เป็นไปได้หรือไม่ที่จะระบุไดเรกทอรีเป้าหมายเมื่อทำงานnpm install <package>
?
คำตอบ:
คุณสามารถใช้--prefix
ตัวเลือก:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
แพคเกจ (s) ./install/here/node_modules
จากนั้นจะได้รับการติดตั้งใน mkdir
เป็นสิ่งจำเป็นตั้งแต่ NPM อื่นอาจจะเลือกที่มีอยู่แล้วnode_modules
ไดเรกทอรีที่สูงขึ้นในลำดับชั้น (ดูเอกสาร npm ในโฟลเดอร์ )
npm install
(โดยไม่มีชื่อแพ็คเกจ) หรือไม่? ฉัน thired นี้โดยตรง แต่แล้วลักษณะ NPM สำหรับในpackage.json
{prefix}
สิ่งที่ฉันยังมีจุดมุ่งหมายคือเพื่อให้สามารถที่จะให้ในรากโครงการและในเวลาเดียวกันการติดตั้งแพคเกจทั้งหมดในpackages.json
{project root}/{project webroot}
npm install
แต่--prefix
ดูเหมือนโซลูชันที่ดีกว่าถ้ามันไม่ทำให้เกิดการสอบถามซ้ำ
ในเอกสารประกอบมีการระบุไว้: ใช้ตัวเลือกคำนำหน้าพร้อมกับตัวเลือกสากล :
คำนำหน้าการตั้งค่าเริ่มต้นที่ตำแหน่งที่มีการติดตั้งโหนด ในระบบส่วนใหญ่นี้เป็น/ usr / local บน windows นี่เป็นตำแหน่งที่แน่นอนของไบนารี node.exe บนระบบ UNIX ก็ขึ้นหนึ่งระดับตั้งแต่โหนดโดยทั่วไปจะมีการติดตั้งที่{} คำนำหน้า / bin / โหนดมากกว่า {} คำนำหน้า /node.exe
เมื่อโลกตั้งธง, NPM ติดตั้งสิ่งที่เป็นคำนำหน้านี้ เมื่อไม่ได้ตั้งค่าจะใช้รูทของแพ็คเกจปัจจุบันหรือไดเรกทอรีทำงานปัจจุบันหากไม่ได้อยู่ในแพ็คเกจแล้ว
(เน้นโดยพวกเขา)
ดังนั้นในรูทไดเร็กทอรีของคุณคุณสามารถติดตั้งได้
npm install --prefix <path/to/prefix_folder> -g
และมันจะติดตั้งnode_modules
โฟลเดอร์ลงในโฟลเดอร์
<path/to/prefix_folder>/lib/node_modules
require
ติดตั้งแพ็คเกจทั่วโลกได้ใช่ไหม
ตั้งแต่ npm เวอร์ชั่น 3.8.6 คุณสามารถใช้ได้
npm install --prefix ./install/here <package>
เพื่อติดตั้งในไดเรกทอรีที่ระบุ NPM จะสร้างnode_modules
โฟลเดอร์โดยอัตโนมัติแม้ว่าจะมีnode_modules
ไดเรกทอรีอยู่แล้วในลำดับชั้นที่สูงขึ้น คุณยังสามารถมีpackage.json
ในไดเรกทอรีปัจจุบันแล้วติดตั้งในไดเรกทอรีที่ระบุโดยใช้--prefix
ตัวเลือก:
npm install --prefix ./install/here
ตั้งแต่ npm 6.0.0 คุณสามารถใช้ได้
npm install --prefix ./install/here ./
เพื่อติดตั้ง package.json ในไดเรกทอรีปัจจุบันไปยังไดเรกทอรี "./install/here" มีสิ่งหนึ่งที่ฉันสังเกตเห็นบน Mac ว่ามันสร้าง symlink ไปยังโฟลเดอร์แม่ภายในไดเรกทอรี node_modules แต่ก็ยังใช้งานได้
หมายเหตุ: NPM ให้เกียรติเส้นทางที่คุณระบุผ่าน--prefix
ตัวเลือก จะแก้ไขตามเอกสารต่อแกลลอนต่อนาทีในโฟลเดอร์เฉพาะเมื่อnpm install
มีการใช้งานโดยไม่มี--prefix
ตัวเลือก
Can't install <current directory>: Missing package name
package.json
ไฟล์ใน./install/here
ฉันกำลังสร้าง PowerShell และไม่สามารถรับ npm ให้ทำงานได้โดยไม่ต้องเปลี่ยนไดเรกทอรีปัจจุบัน
จบลงด้วยการใช้คำสั่งเริ่มต้นและเพียงระบุไดเรกทอรีการทำงาน:
start "npm" -ArgumentList "install --warn" -wo $buildFolder