npm不会安装快递?

我目前有node.js版本0.8.8和npm 1.1.59安装。

每当我运行:

$ npm install -g express 

我得到这个回报:

 npm ERR! Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock' npm ERR! { [Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '/Users/devinandrews/.npm/64a534c1-express.lock' } npm ERR! npm ERR! Please try running this command again as root/Administrator. npm ERR! System Darwin 12.1.0 npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "express" npm ERR! cwd /Users/devinandrews npm ERR! node -v v0.8.8 npm ERR! npm -v 1.1.59 npm ERR! path /Users/devinandrews/.npm/64a534c1-express.lock npm ERR! code EACCES npm ERR! errno 3 npm ERR! stack Error: EACCES, open '/Users/devinandrews/.npm/64a534c1-express.lock' npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /Users/devinandrews/npm-debug.log npm ERR! not ok code 0 

我正在试图弄清楚这件事。

更新:

我跑了

 $ npm -g ls 

看看我的npm在全球安装了什么:

 /usr/local/lib ├─┬ express@3.0.0rc4 │ ├── commander@0.6.1 │ ├─┬ connect@2.4.4 │ │ ├── bytes@0.1.0 │ │ ├── formidable@1.0.11 │ │ ├── pause@0.0.1 │ │ └── qs@0.4.2 │ ├── cookie@0.0.4 │ ├── crc@0.2.0 │ ├── debug@0.7.0 │ ├── fresh@0.1.0 │ ├── methods@0.0.1 │ ├── mkdirp@0.3.3 │ ├── range-parser@0.0.4 │ └─┬ send@0.0.4 │ └── mime@1.2.6 └─┬ npm@1.1.59 ├── abbrev@1.0.3 ├── ansi@0.1.2 ├── archy@0.0.2 ├── block-stream@0.0.6 ├── chownr@0.0.1 ├── couch-login@0.1.10 ├── fstream@0.1.18 ├─┬ fstream-npm@0.1.1 │ └── fstream-ignore@0.0.5 ├── glob@3.1.12 ├── graceful-fs@1.1.10 ├── inherits@1.0.0 ├── ini@1.0.4 ├─┬ init-package-json@0.0.5 │ └── promzard@0.2.0 ├── lockfile@0.2.1 ├── lru-cache@2.0.1 ├── minimatch@0.2.6 ├── mkdirp@0.3.4 ├── node-gyp@0.6.7 ├── nopt@2.0.0 ├── npm-registry-client@0.2.6 ├─┬ npmconf@0.0.11 │ └─┬ config-chain@1.1.1 │ └── proto-list@1.2.2 ├── npmlog@0.0.2 ├── once@1.1.1 ├── osenv@0.0.3 ├─┬ read@1.0.4 │ └── mute-stream@0.0.3 ├── read-installed@0.0.2 ├── read-package-json@0.1.4 ├── request@2.9.203 ├── retry@0.6.0 ├── rimraf@2.0.2 ├── semver@1.0.14 ├── slide@1.1.3 ├── tar@0.1.13 ├── uid-number@0.0.3 └── which@1.0.5 

但如果我运行:

 $ npm ls 

它返回空吗?

我有同样的问题, npm cache clear没有解决它。 此问题是由于.npm目录中的.npm目录是使用root权限创build的。 很可能你运行的第一个npm命令是sudo npm -g ,现在你正试图将npm install在本地目录中。

解决:

  • sudo chown -R yourusername ~/.npm
  • 这可能没有必要,但我也不得不rmdir ~/tmp

从package.json npm install应该在这之后工作。

运行npm cache clean并尝试再次安装

我得到了同样的问题,这个问题是由于您的主目录中的.npm目录是使用root权限创build的。

使用 :

 $sudo npm install -g express 

你有没有试过sudo npm -g install express?

解决scheme是:

1 – 向用户展示.npm文件夹:

 sudo chown -R Webmaste /Users/webmaste/.npm/ 

2 – 在您的testing文件夹或您的文件夹:

 sudo npm install -g express@2.5.8 

3 – 从您的实际位置调用快递:

 /usr/local/share/npm/bin/express 

4 –

 sudo cd . && npm install 

5 – 最后:

 node app 

控制台中的最终消息应该如下所示:

 Express server listening on port 3000 in development mode 

在我的情况下,而不是〜/ .npm目录由根拥有,它是〜/ tmp,我不认为要检查,直到其中一个错误信息终于让我find。 修复程序非常简单,因为它是一个tmp目录,我们可以将其删除,然后重新开始。

 sudo rmdir ~/tmp mkdir ~/tmp 

如果使用sudo npm install -g package_name看不到任何错误。 并且input密码时遇到问题,您可以将自己添加到sudoers文件或npm可执行文件所属的同一组中。

所以要添加自己的npm编辑/etc/sudoers添加类似这样的文件的底部:

 your_username localhost=/usr/local/bin/npm 

如果你需要更多的细节, 这里是一步一步的指导。

我面临同样的问题。

我通过转到节点js下载网站升级了nodejs包,然后我没有面对这个问题。

谢谢你,祝你好运