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包,然后我没有面对这个问题。
谢谢你,祝你好运