ฉันเพิ่งติดตั้ง Node.js และโมดูล npm บน OSX และมีปัญหากับการตั้งค่าที่ฉันคิดว่า:
npm install [MODULE] is not installing the node.js module to the default path
which is /usr/local/lib/node_modules.
ฉันเพิ่งติดตั้ง Node.js และโมดูล npm บน OSX และมีปัญหากับการตั้งค่าที่ฉันคิดว่า:
npm install [MODULE] is not installing the node.js module to the default path
which is /usr/local/lib/node_modules.
คำตอบ:
หากคุณต้องการติดตั้งโมดูล npm แบบโกลบอลตรวจสอบให้แน่ใจว่าใช้-g
แฟล็กใหม่ตัวอย่างเช่น:
npm install forever -g
คำแนะนำทั่วไปเกี่ยวกับการติดตั้งโมดูล npm ตั้งแต่ 1.0rc (นำมาจากblog.nodejs.org ):
- หากคุณกำลังติดตั้งบางสิ่งที่คุณต้องการใช้ในโปรแกรมของคุณให้ใช้ require ('อะไรก็ตาม') จากนั้นติดตั้งในเครื่องเครื่องที่รากของโครงการของคุณ
- หากคุณกำลังติดตั้งบางสิ่งที่คุณต้องการใช้ในเชลล์ของคุณในบรรทัดคำสั่งหรือบางสิ่งให้ติดตั้งแบบโกลบอลเพื่อให้ไบนารีของมันสิ้นสุดลงในตัวแปรสภาพแวดล้อม PATH ของคุณ
ฉันเพิ่งใช้คำแนะนำนี้และมันก็ราบรื่นดี ฉันติดตั้งไว้ตลอดไปทั่วโลก (เนื่องจากเป็นเครื่องมือบรรทัดคำสั่ง) และโมดูลแอปพลิเคชันของฉันทั้งหมดในพื้นที่
อย่างไรก็ตามหากคุณต้องการใช้บางโมดูลทั่วโลก (เช่น express หรือ mongodb) ให้ใช้คำแนะนำนี้ (นำมาจากblog.nodejs.org ):
แน่นอนว่ามีบางกรณีที่คุณต้องการทำทั้งสองอย่าง Coffee-script และ Express ทั้งสองเป็นตัวอย่างที่ดีของแอพที่มีอินเตอร์เฟสบรรทัดคำสั่งรวมถึงไลบรารี ในกรณีเหล่านั้นคุณสามารถเลือกทำอย่างใดอย่างหนึ่งต่อไปนี้:
- ติดตั้งในสถานที่ทั้งสอง อย่างจริงจังคุณมีพื้นที่ดิสก์สั้นหรือไม่ ไม่เป็นไรจริง ๆ พวกเขาเป็นโปรแกรมจาวาสคริปต์เล็ก ๆ
- ติดตั้งทั่วโลกจากนั้นเชื่อมโยง npm coffee-script หรือ npm link express (หากคุณอยู่บนแพลตฟอร์มที่รองรับลิงก์สัญลักษณ์) จากนั้นคุณจะต้องอัปเดตสำเนาทั่วโลกเพื่ออัปเดต symlink ทั้งหมดเช่นกัน
ตัวเลือกแรกนั้นดีที่สุดในความคิดของฉัน ง่ายชัดเจนชัดเจน ประการที่สองมีประโยชน์จริง ๆ ถ้าคุณกำลังจะใช้ไลบรารีเดียวกันในโครงการต่าง ๆ มากมาย (เพิ่มเติมเกี่ยวกับลิงก์ NPM ในงวดต่อ ๆ ไปในอนาคต)
ฉันไม่ได้ทดสอบหนึ่งในรูปแบบเหล่านั้น แต่พวกเขาดูเหมือนจะตรงไปตรงมา
npm prefix
เพื่อรับส่วนนำหน้าท้องถิ่นและnode prefix -g
ดูคำนำหน้าส่วนกลาง :)
ใน Mac ฉันพบผลลัพธ์ที่มีข้อมูลที่ฉันกำลังมองหา:
$> npm install -g karma
...
...
> ws@0.4.25 install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
...
$> ls /usr/local/share/npm/bin
karma nf
หลังจากเพิ่ม/usr/local/share/npm/bin
ลงในexport PATH
บรรทัดใน.bash_profile
บันทึกและเข้าsource
ใช้แล้วฉันสามารถเรียกใช้ได้
$> karma --help
ปกติ
ฉันชอบใช้ไฟล์ package.json ในรูทของโฟลเดอร์แอปของคุณ
นี่คือสิ่งที่ฉันใช้
nvm use v0.6.4
npm install
ฉันมีปัญหาในการติดตั้ง Express บน Ubuntu:
หากมีเหตุผลบางคำสั่ง NPM จะหายไปคำสั่งทดสอบ NPM npm help
กับ หากไม่มีให้ทำตามขั้นตอนเหล่านี้ - http://arnolog.net/post/8424207595/installing-node-js-npm-express-mongoose-on-ubuntu
หากคำสั่ง Express ไม่ทำงานให้ลอง:
sudo npm install -g express
สิ่งนี้ทำให้ทุกอย่างทำงานได้เหมือนที่ฉันคุ้นเคยกับ Windows7 และ OSX
หวังว่านี่จะช่วยได้!
คุณต้องมีสิทธิ์ผู้ใช้ขั้นสูง
sudo npm install -g <package name>
ใน Ubuntu, เส้นทางการตั้งค่าของ node_modules ใน.bashrcไฟล์
ส่งออก PATH = "/ home / ชื่อผู้ใช้ / node_modules / .bin: $ PATH"
คุณอาจไม่มีสิทธิ์ในการเขียนเพื่อติดตั้งโมดูลโหนดในตำแหน่งโกลบอลเช่น/usr/local/lib/node_modules
ในกรณีนี้ให้รันแพ็กเกจ npm install -g เป็นรูท