使用自定义nodejs安装运行npm install

时间:2014-09-03 09:18:10

标签: node.js npm

我的ubuntu 12.04系统中有2个nodejs安装v0.8.18(可执行文件名为node)和v0.10.20(可执行文件名为nodejs)。 当我运行npm install时如何指定npm使用名为" nodejs"的可执行文件。而不是"节点"

1 个答案:

答案 0 :(得分:1)

如果你实际上想要在各种nodejs版本之间切换,那么有一个环境变量NODE_PATH,它控制节点用于访问模块的目录路径。另一个问题是unix用于访问可执行文件的env var PATH,IE。 node和npm

此外,node / npm使用这些目录/文件:

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

那些可能会或可能不会受到不同节点版本的影响。 如果从源代码安装每个版本,则可以完全控制NODE_PATH和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和npm作为你自己不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

将其放入上面--prefix

定义的目录中
export PATH=${parent_dir}/nodejs/bin:$PATH

定义环境变量NODE_PATH,以便节点可以找到模块的dir npm install xxx会将新安装的模块放入curr目录中的dir:

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

执行上面的操作并使用语法:npm install -g some_cool_module 总是使用-g为全局,因此它被安装到dir $ NODE_PATH中 而不是你的$ PWD

nodejs install也为你提供了npm:

ls -la ${parent_dir}/nodejs/bin