最初我试图在我的centos服务器上修复"Cannot find module 'npmlog'"
问题。看看stackoverflow我找到了一个适用于其他人的推荐解决方案:
curl -0 -L http://npmjs.org/install.sh | sudo sh
但我一直在收到流动的错误:
curl -0 -L http://npmjs.org/install.sh | sudo sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 193 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 6711 100 6711 0 0 9554 0 --:--:-- --:--:-- --:--:-- 9554
npm cannot be installed without nodejs.
Install node first, and then try again.
Maybe node is installed, but not in the PATH?
Note that running as sudo can change envs.
PATH=/sbin:/bin:/usr/sbin:/usr/bin
我安装了节点,路径正常
echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/etc/init.d/:/root/bin:/tradair/tools/node-v0.8.19/bin/
答案 0 :(得分:1)
以下是从源安装给定版本的步骤 注意 - 这会安装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
答案 1 :(得分:1)
这将解决npmlog缺失模块问题:
cd <node_home>/bin
mv npm npm.orig
ln -s ../lib/node_modules/npm/cli.js npm