我的ubuntu 12.04系统中有2个nodejs
安装v0.8.18
(可执行文件名为node
)和v0.10.20
(可执行文件名为nodejs
)。
当我运行npm install
时如何指定npm使用名为" nodejs"的可执行文件。而不是"节点"
答案 0 :(得分:1)
如果你实际上想要在各种nodejs版本之间切换,那么有一个环境变量NODE_PATH,它控制节点用于访问模块的目录路径。另一个问题是unix用于访问可执行文件的env var PATH,IE。 node和npm
此外,node / npm使用这些目录/文件:
~/.npmrc
~/.npm
~/tmp
~/.npm-init.js
那些可能会或可能不会受到不同节点版本的影响。 如果从源代码安装每个版本,则可以完全控制NODE_PATH和PATH
上提供的所有版本的源代码以下是从源安装给定版本的步骤 注意 - 这会安装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}
下载源代码
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