【发布时间】:2015-12-15 03:34:41
【问题描述】:
我正在尝试按照the npm doc site 上的说明安装最新的 npm。
我的问题是使用命令:
npm install -g npm
获取最新版本的 NPM 似乎不起作用:它似乎没有安装任何所需的依赖项,所以当我运行它时,我收到如下错误:
module.js:340
throw err;
^
Error: Cannot find module 'are-we-there-yet'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/harmic/.node_modules/lib/node_modules/npm/node_modules/npmlog/log.js:2:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
我使用的是 Centos 6 机器,所以我首先从 EPEL 安装 node + npm,如下所示:
yum install nodejs npm
一切顺利。然后我按照上面链接和我见过的许多其他页面的建议安装了最新的 npm。我的第一次尝试
sudo npm install -g npm
不是很好,有两个原因:
-
它安装在
李>/usr/lib/node_modules中,位于原始 RPM 安装的顶部。我认为这是非常糟糕的做法,因为下次我在系统上执行yum update时,新安装的文件很有可能会被包含的任何传入 RPM 包覆盖,从而造成一团糟。 无论如何它都不起作用:我根本无法启动 npm,它不断抱怨如上所述缺少依赖项。
所以我卸载了 RPM,删除了所有剩余的文件,然后再次重新安装了 RPM。这次我创建了一个~/.npmrc 文件并将其放入其中:
prefix = ${HOME}/.node_modules
我还设置了 NODE_PATH 环境变量以包含该路径。在此之后,npm 确实将自己安装在我想要的位置,但没有安装任何依赖项:
$ npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 304 https://registry.npmjs.org/npm
/home/harmic/.node_modules/bin/npm -> /home/harmic/.node_modules/lib/node_modules/npm/bin/npm-cli.js
npm@3.3.3 /home/harmic/.node_modules/lib/node_modules/npm
从新安装的路径运行它会在页面顶部出现错误。
尽管我认为我一定是做错了什么,但我还是开始尝试安装未满足的依赖项,一次一个:
npm install -g are-we-there-yet
npm install -g gauge
npm install -g os-tmpdir
npm install -g os-homedir
npm install -g is-absolute
npm install -g asap
npm install -g path-is-absolute
npm install -g builtins
npm install -g validate-npm-package-license
npm install -g concat-stream
npm install -g json-parse-helpfulerror
npm install -g readdir-scoped-modules
npm install -g debuglog
npm install -g lodash._baseclone
npm install -g lodash._bindcallback
npm install -g lodash._baseflatten
npm install -g lodash._baseuniq
...
它仍然抱怨需要更多。
最后我得出结论,我一定错过了一些重要的事情,所以我决定向 SO 社区寻求帮助......
最初安装的 node 和 npm RPM 版本是:
- nodejs-0.10.36-3.el6
- npm-1.3.6-5.el6
哦,如果您想知道,我首先尝试更新 npm 的原因是因为在尝试安装 this package 时遇到了构建错误,解决方案显然是安装更新的 npm .
【问题讨论】: