常见错误
常见错误
随机错误 - 一个开始的地方
- 只需运行
npm cache clean
并再次尝试即可解决一些奇怪的问题。
找不到兼容版本
你有一个过时的npm。请更新到最新稳定的npm。
权限错误
请参阅在讨论第2和第3章有关如何避免权限错误。
Error: ENOENT, stat 'C:\Users\<user>\AppData\Roaming\npm' 在Windows 7上
这是 joyent / node#8141 的结果,并且是Windows的Node安装程序的问题。解决方法是确保C:\Users\<user>\AppData\Roaming\npm存在并且可以使用普通用户帐户写入。
没有空间
npm ERR! Error: ENOSPC, write
您正在尝试安装在没有空间或没有写入权限的驱动器上。
- 释放一些磁盘空间或
没有git
npm ERR! not found: git
ENOGIT
你需要安装 git。或者,您可能需要将您的git信息添加到您的 npm 配置文件中。您可以从命令行或从网站执行此操作。
由于路径长度问题,在Windows上运行Vagrant框失败
@drmyersii 经历了一个听起来很麻烦的试验和错误,想出了一个涉及 Windows 长路径和一些自定义Vagrant配置的工作解决方案:
这是我实现它的提交,但我会继续发布代码的主要代码片段:
配置。vm 。提供者 “ virtualbox ”做 | v |
v 。 自定义 [ “ sharedfolder ”,“添加”,: ID ,“ --name ”,“ WWW ”,“ --hostpath ”,((“ // / ” + 文件。目录名(__FILE__ )+ “ / WWW ”)。GSUB (“ / ”,“ \\ ” ]结束
配置。 vm 。提供 : shell ,内联:“ mkdir / home / vagrant / www ”
配置。 vm 。提供 : shell ,内联:“ mount -t vboxsf -o uid =`id -u vagrant`,gid =`getent group vagrant | cut -d:-f3`> www / home / vagrant / www ”,run :“ always “
在上面的代码中,我将附加 \\?\ 到当前目录的绝对路径。这实际上会强制 Windows API 允许增加MAX_PATH
变量(通常上限为260)。这是在共享文件夹创建期间发生的,这是由VBoxManage
有意处理而不是Vagrant
的“synced_folder”
方法。最后一点是不言自明的; 我们创建新的共享文件夹,然后确保每次访问或触摸机器时都会挂载它,因为Vagrant
喜欢在每次加载时重新加载其挂载/共享文件夹。
npm仅使用git:和ssh+git:GitHub repos的URL,破坏代理
@LaurentGoderre 用一些 Git 技巧解决了这个问题:
我通过运行以下两个命令修复了我的几个同事的这个问题:
git config --global url."https://github.com/".insteadOf git@github.com:
git config --global url."https://".insteadOf git://
我们注意到的一件事是.gitconfig
使用的并不总是预期的,所以如果你在一台机器上修改了共享驱动器的主路径,你需要确保.gitconfig
你的共享驱动器和c:\users\[your user]\
SSL错误
npm ERR! Error: 7684:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:openssl\ssl\s23_clnt.c:787:
您正在尝试将SSL与未加密的端点进行通信。通常,这是由于代理 配置 错误(另请参阅此帮助,如果过时,指南)。在这种情况下,您不希望禁用strict-ssl- 您可能需要设置CA / CA文件以用于您的代理,但最好花些时间来解决这个问题,而不是禁用SSL保护。
npm ERR! Error: SSL Error: CERT_UNTRUSTED
npm ERR! Error: SSL Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE
如果您正在运行Node 0.6,则会发生此问题。请升级到0.8或以上的节点。
您也可以尝试这些解决方法:npm config set ca ""
或npm config set strict-ssl false
npm ERR! Error: SSL Error: SELF_SIGNED_CERT_IN_CHAIN
npm不再支持自签名证书
或者:
- 升级您的npm版本
npm install npm -g --ca=""
如果这不能解决问题,那么您可能拥有SSL拦截代理。(例如,https://github.com/npm/npm/issues/7439#issuecomment-76024878)
SSL拦截代理
未解。请参阅https://github.com/npm/npm/issues/9282
找不到/服务器错误
npm http 404 https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.0.tgz
npm ERR! fetch failed https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.7.0.tgz
npm ERR! Error: 404 Not Found
npm http 500 https://registry.npmjs.org/phonegap
- 这很可能是一个临时的npm注册表故障。检查npm服务器状态,稍后再试。
无效的JSON
Error: Invalid JSON
npm ERR! SyntaxError: Unexpected token <
npm ERR! registry error parsing json
- 可能的临时npm注册表故障,或损坏的本地服务器缓存。运行
npm cache clean
和/或稍后再试。
输出中有很多ENOENT/ ENOTEMPTY错误
编写npm是为了在安装时有效地使用资源,其中一部分是它尝试同时执行尽可能多的事情。有时这会导致竞争条件和其他同步问题。从npm 2.0.0开始,解决了大量这些问题。如果你看到ENOENT lstat
,ENOENT chmod
,ENOTEMPTY unlink
,或在你的日志输出类似的东西,尝试更新NPM到最新版本。如果问题仍然存在,请查看npm / npm#6043
并查看是否有人已经讨论过您的问题。
cb() never called! 使用shrinkwrapped依赖项时
看一下#5920号问题。我们正在努力修复这个,但这是一个相当微妙的竞争条件,它花了我们一点时间。您可以尝试将npm-shrinkwrap.json文件移开,直到我们将其修复为止。
这已在npm版本中修复npm@2.1.5
,因此更新为npm@latest
。
npm login 错误
有时npm login
失败没有明显的原因。首先要登录https://www.npmjs.com
/login并检查您的电子邮件地址是否npmjs.com
与您提供的电子邮件地址相符npm login
。
如果那不是问题,或者您正在看到该消息"may not mix password_sha and pbkdf2"
,那么
它通常似乎工作。
有关此问题的历史记录,请参阅https://github.com/npm/npm/issues/6641#issuecomment-72984009。
npm 挂在Windows上 addRemoteTarball
检查是否在您的设置中设置了两个临时目录.npmrc
:
> npm config ls -l
查找定义tmp
config变量的行。如果您找到多个,请删除除其中一个之外的所有内容。
有关此异常问题的详细信息,请参阅https://github.com/npm/npm/issues/7590。
为什么npm不在我的Windows机器上运行最新版本?
请查看有关Windows的部分。