我正在尝试安装one of my own packages,如下所示
npm install --save gfarrell/state.js
我收到以下错误(full log here):
npm ERR! addLocal Could not install gfarrell/state.js
npm ERR! Error: ENOENT, stat 'gfarrell/state.js'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR! <http://github.com/npm/npm/issues>
npm ERR! System Darwin 13.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "--save" "gfarrell/state.js"
npm ERR! cwd /Users/gideon/Code/PresenceMonitor
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.10
npm ERR! path gfarrell/state.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/gideon/Code/PresenceMonitor/npm-debug.log
npm ERR! not ok code 0
现在我已尝试various solutions,包括:
npm cache clean
sudo npm cache clean
rm -rf ~/.npm
sudo npm install --save gfarrell/state.js
npm install --save git://github.com/gfarrell/state.js.git
但没有改变错误输出。我无法看到该模块的package.json有什么问题,而且我还没有向我的本地package.json
添加任何内容。我实际上尝试在早期版本上安装此软件包并且工作正常,所以我只是不明白出了什么问题。
毋庸置疑,这一切都令人沮丧。还有其他事情我还没看到吗?
答案 0 :(得分:0)
这很可能是身份验证问题。您应该将--verbose
添加到install命令以获得更多输出。运行详细信息时,您应该在控制台输出中看到此行:
npm ERR! git clone git@github.com:gfarrell / state.js权限被拒绝(公钥)。
使用以下命令检查您是否通过Github身份验证:
ssh -T git@github.com
正确验证后,您应该看到以下输出:
嗨gfarrell!您已成功通过身份验证,但GitHub不提供shell访问权限。
Github有一个关于SSH keys的精彩指南以及如何解决common errors。
修复您的Github身份验证,npm安装将开始工作。
答案 1 :(得分:0)
我自己也遇到过类似的问题。因为最后一次&#34; ok&#34;详细输出的行以&#34; addRemoteGit&#34;开头,我将问题追溯到addRemoteGit
源文件 cache.js 中的npm
函数v1.4.9,它现在已被移入add-remote-git.js)。通过添加对log.verbose(p)
的调用,我发现npm
无法写入~/.npm/_git-remotes/
。
基本上这是一个权限问题:我的~/.npm
目录包含文件&amp; root
拥有的目录。我只是通过运行解决了这个问题:
sudo find ~/.npm -exec chown $USER:$USER {} \;