2014-09-03 83 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