ฉันค้นหาหน้าโมดูลวิกิแล้ว แต่ไม่พบสิ่งที่คล้ายกับ Virtualenv (python) หรือ rvm
ใครที่นี่แยก node.js ใน env ของตัวเอง? ฉันไม่ชอบติดตั้ง npm ทั้งระบบ
ฉันค้นหาหน้าโมดูลวิกิแล้ว แต่ไม่พบสิ่งที่คล้ายกับ Virtualenv (python) หรือ rvm
ใครที่นี่แยก node.js ใน env ของตัวเอง? ฉันไม่ชอบติดตั้ง npm ทั้งระบบ
คำตอบ:
หากการมีแพ็กเกจ npm ทั้งระบบเป็นปัญหาหลักของคุณคุณอาจลองใช้คำสั่ง 'บันเดิล' ที่ยอดเยี่ยมกับ npm ใกล้เคียงกับการแช่แข็งอัญมณีหรือการใช้บันเดิลเลอร์ในรางมากกว่า rvm
ง่ายสุด ๆ เพียงสร้างไฟล์ package.json:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
แล้วเรียกใช้:
npm bundle vendor
หรือถ้าเวอร์ชัน npm ของคุณคือ> = 1.0 ให้รัน:
npm install
เพื่อตรึงไว้ในไดเร็กทอรีผู้ขาย จากนั้นใช้:
require.paths.unshift('./vendor');
npm install
แทนที่ด้วยnpm bundle
NPM 1.0
nodeenv - สภาพแวดล้อมเสมือนจริงสำหรับ Node.js (อนาล็อกvirtualenv )
node.js
สภาพแวดล้อมเปิดใช้งานพร้อมกับสภาพแวดล้อม Python ดูnodeenv -p
.
นอกจากนี้ยังมีระบบการจัดการ Node เวอร์ชันที่สามารถช่วยได้
ลองดู Nave https://github.com/isaacs/nave
NVM สามารถใช้https://github.com/creationix/nvm
นอกจากนี้ยังมีชื่อ n https://github.com/visionmedia/n
nvm
หรือn
ต้องการสลับอัตโนมัติเมื่อคุณเปลี่ยนไดเรกทอรีโปรดดูที่avn
: github.com/wbyoung/avn
คำตอบของ bxjx นั้นถูกต้องตามแนวคิด อย่างไรก็ตามโปรดทราบว่าคำสั่งบันเดิลไม่ใช้ไดเร็กทอรีอีกต่อไป มันมักจะทิ้งแพ็คเกจลงในnode_modules
โฟลเดอร์เพื่อให้ npm รู้ว่าจะหาได้ที่ไหนในภายหลัง (และสามารถหลีกเลี่ยงการติดตั้งการอ้างอิงซ้ำได้)
วิธีแก้ปัญหาใด ๆ อาจเกี่ยวข้องกับการติดตั้ง npm และ nave "ทั้งระบบ" (นั่นคือในของคุณPATH
ซึ่งอาจอยู่ที่~
ใดที่หนึ่ง) แต่จะติดตั้งเฉพาะการอ้างอิงเฉพาะของคุณในสภาพแวดล้อมเสมือนเท่านั้น
ฉันตอบอย่างละเอียดเพิ่มเติมเกี่ยวกับปัญหา GitHub
tl; dr: กรณีการใช้งานนั้นถูกต้องและเป็นประโยชน์และแม้ว่าส่วนใหญ่จะอยู่ที่นั่น แต่ก็ไม่ได้ให้บริการดีเท่าที่ควร เราควรคิดให้ดีและทำอย่างถูกต้อง
คุณไม่จำเป็นต้องติดตั้งการอ้างอิงทั่วโลกเสมอไป โดยปกติก็แนะนำแล้วเพราะคุณสามารถใช้คำสั่งที่แพคเกจ NPM ให้ แต่ถ้าคุณติดตั้งไว้ในเครื่อง (ในnode_modules
) ไดเรกทอรีคุณยังสามารถใช้คำสั่งเหล่านี้พวกเขาเพียงลมขึ้นในnode_modules/.bin/
ไดเรกทอรีดังนั้นคุณจะต้องพิมพ์node_modules/.bin/<command>
, ซึ่งน่ารำคาญ แต่คุณสามารถเพิ่มเส้นทางนี้ให้กับPATH
ตัวแปรสภาพแวดล้อมของคุณได้:
export PATH=node_modules/.bin:$PATH
จากนั้นคุณสามารถพิมพ์<command>
และใช้งานได้!
มีคำสั่ง npm ที่ส่งคืนเส้นทางสัมบูรณ์ไปยัง.bin
ไดเร็กทอรี:
$ npm bin
/path/to/node_modules/.bin
คำสั่งนี้ยังใช้งานได้เมื่อคุณอยู่ในไดเร็กทอรีย่อยของโปรเจ็กต์โดยจะส่งคืนnode_modules/.bin
ไดเร็กทอรีแรกที่พบในไดเร็กทอรีหลัก
คุณสามารถเพิ่มนามแฝงนี้ใน.bashrc
การเพิ่ม.bin/
ไดเร็กทอรีของคุณโดยอัตโนมัติPATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
ดังนั้นเมื่อคุณอยู่ในไดเร็กทอรีของโปรเจ็กต์ที่มีnode_modules/
ไดเร็กทอรีอยู่ในรูทคุณสามารถพิมพ์nodebin
และใช้คำสั่งทั้งหมดที่อยู่ใน.bin/
ไดเร็กทอรีได้!
ดูมีวิธีที่ดีกว่า:
การติดตั้ง Node.js และ npm ลงใน Python Virtualenv
ตอนนี้ฉันสามารถใช้เครื่องมือโหนดโดยไม่ยุ่งกับสภาพแวดล้อมของถังขยะทั่วโลก
ถ้าคุณชอบแบบเรียบง่ายฉันขอแนะนำให้ใช้ visionmedia's nอย่างแท้จริงไม่ง่ายเลย!
npm install
สำหรับสิ่งนี้