NPM จะติดตั้งแพ็กเกจภายในเครื่องลงในโปรเจ็กต์ของคุณแล้ว แต่ฉันยังคงต้องการให้ระบบอยู่ห่างจากไฟล์ระบบปฏิบัติการของฉัน นี่คือวิธีที่ฉันแนะนำการแบ่งแพ็คเกจ Nodejs:
ติดตั้ง Nodejs และ NPM ผ่าน chris-lea PPA จากนั้นฉันตั้งค่ารูทแพ็คเกจใน homedir ของฉันเพื่อเก็บแพ็คเกจโหนด "global":
$ NPM_PACKAGES="$HOME/.npm-packages"
$ mkdir -p "$NPM_PACKAGES"
ตั้งค่า NPM เพื่อใช้ไดเร็กทอรีนี้สำหรับการติดตั้งแพ็กเกจส่วนกลาง:
$ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc
กำหนดค่า PATH และ MANPATH ของคุณเพื่อดูคำสั่งในคำนำหน้า $ NPM_PACKAGES ของคุณโดยเพิ่มสิ่งต่อไปนี้ใน. zshrc / .bashrc ของคุณ:
# NPM packages in homedir
NPM_PACKAGES="$HOME/.npm-packages"
# Tell our environment about user-installed node tools
PATH="$NPM_PACKAGES/bin:$PATH"
# Unset manpath so we can inherit from /etc/manpath via the `manpath` command
unset MANPATH # delete if you already modified MANPATH elsewhere in your configuration
MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
# Tell Node about these packages
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
ตอนนี้เมื่อคุณทำnpm install -g
NPM จะติดตั้งไลบรารีลงใน~/.npm-packages/lib/node_modules
และเชื่อมโยงเครื่องมือที่เรียกใช้~/.npm-packages/bin
งานได้ซึ่งอยู่ในPATH
ไฟล์.
เพียงใช้npm install -g
ตามปกติ:
[justjake@marathon:~] $ npm install -g coffee-script
... (npm downloads stuff) ...
/home/justjake/.npm-packages/bin/coffee -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/coffee
/home/justjake/.npm-packages/bin/cake -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/cake
coffee-script@1.3.3 /home/justjake/.npm-packages/lib/node_modules/coffee-script
[justjake@marathon:~] $ which coffee
/home/justjake/.npm-packages/bin/coffee