尝试修复NPM安装时出错

本来我试图修复"Cannot find module 'npmlog'"问题在我"Cannot find module 'npmlog'"服务器上。 看在stackoverflow我find了一个build议的解决scheme,为其他人工作:

 curl -0 -L http://npmjs.org/install.sh | sudo sh 

但是我不断收到stream动的错误:

 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 

我有节点安装,我的path是好的

 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/ 

以下是从源代码安装给定发行版的步骤注 – 这将安装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 

把它放到上面定义的dir中–prefix

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

定义环境variablesNODE_PATH,以便节点可以find模块的目录,否则npm install xxx会把新安装的模块放到目录中curr目录中:

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

做以上和使用语法:npm install -g some_cool_module总是使用-g为全局,所以它被安装到目录$ NODE_PATH而不是你的$ PWD

nodejs install也给你npm:

 ls -la ${parent_dir}/nodejs/bin 

这将修复npmlog缺less的模块问题:

 cd <node_home>/bin mv npm npm.orig ln -s ../lib/node_modules/npm/cli.js npm