2014-09-03 123 views
1

我有2 nodejs安裝v0.8.18(可執行文件的名稱是node)和v0.10.20(可執行文件的名稱是nodejs)在我的Ubuntu 12.04系統。 當我運行npm install我怎麼可以指定NPM使用名爲可執行「的NodeJS」而不是「節點」運行NPM安裝使用自定義安裝的NodeJS

回答

1

如果你在,其實真正想要不同的NodeJS版本之間切換,存在控制目錄中的環境變量NODE_PATH路徑節點用來到達模塊。另一個問題是unix用來訪問可執行文件IE的env var PATH。節點和NPM

此外,節點/ NPM使用這些目錄/文件:

~/.npmrc 
~/.npm 
~/tmp 
~/.npm-init.js 

那些可能會或可能不會被節點的不同版本的影響。 如果安裝從源代碼中的每個版本你有NODE_PATH的完全控制和路徑提供的所有版本

源代碼在http://nodejs.org/dist/

下面是從源代碼安裝 注意給定的發行步驟 - 此安裝的NodeJS它既可以讓你節點也可以使用npm,它們會在每個版本中一起出現。

從頭開始之前刪除node.js的和NPM安裝以及這些:

sudo mv ~/.npmrc ~/.npmrc_ignore 
sudo mv ~/.npm ~/.npm_ignore 
sudo mv ~/tmp ~/tmp_ignore 
sudo mv ~/.npm-init.js ~/.npm-init.js_ignore 

安裝和的NodeJS作爲故宮自己不是root執行這些命令(OSX/Linux的):

parent_dir=${HOME}/bin_xxxx # replace bin_xxx with something specific 
          # to node release like bin_v0.10.31 

mkdir ${parent_dir} 

下載源從:http://nodejs.org/download/

cd node-v0.xxxx 

./configure --prefix=${parent_dir}/nodejs 

make -j8 
make install 

其中將其放入目錄d通過上述efined --prefix

export PATH=${parent_dir}/nodejs/bin:$PATH 

定義環境變量NODE_PATH所以節點可以找到模塊的目錄,否則 NPM安裝XXX將會把新安裝的模塊插入DIR在DIR CURR:

export NODE_PATH=${parent_dir}/nodejs/lib/node_modules 

做的上方,使用語法:NPM安裝-g some_cool_module 始終使用全球的-g所以它被安裝到DIR $ NODE_PATH ,而不是你的$ PWD

安裝的NodeJS賦給y ou npm:

ls -la ${parent_dir}/nodejs/bin