• NPM 常见错误


    找不到兼容版本

    你有一个过时的npm。请更新到最新稳定的npm

    权限错误

    npm ERR! code EPERM
    
    npm ERR! code EACCES
    
    • 修复缓存的权限sudo chown -R $(whoami) "$HOME/.npm"
    • 再试一次sudo例如sudo npm install express -g(之后您可能需要修复缓存权限,如上所述)。
    • 重新安装节点,因此它不需要sudo

    使用0.8的Travis项目无法升级到npm 2

    在你的.travis.yml替换中:

    before_install
    - npm install -g npm @ latest 

    有了这个:

    before_install
    - ' [“$ {TRAVIS_NODE_VERSION}”!=“0.8”] || npm install -g npm@1.4.28 ' 
    - npm install -g npm @ latest 

    这个建议是基于这个特拉维斯问题,来自@simondean礼貌

    Error: ENOENT, stat 'C:Users<user>AppDataRoaming pm' 在Windows 7上

    这是joyent / node#8141的结果,并且是Windows的Node安装程序的问题。解决方法是确保C:Users<user>AppDataRoaming pm存在并且可以使用普通用户帐户写入。

    没有空间

    npm ERR! Error: ENOSPC, write
    

    您正在尝试安装在没有空间或没有写入权限的驱动器上。

    • 释放一些磁盘空间或
    • 将tmp文件夹设置在具有更多空间的位置:npm config set tmp /path/to/big/drive/tmp
    • 自己构建节点并将其安装在可写空间很大的地方。

    没有git

    npm ERR! not found: git
    ENOGIT
    

    你需要安装git

    由于路径长度问题,在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:opensslssls23_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=""
    • 告诉你当前版本的npm使用已知的注册商 npm config set 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和/或稍后再试。
    • 这可能是由对代表提供HTML响应的公司代理引起的package.json检查npm的代理配置
    • 检查您尝试安装的软件包是否存在问题(例如无效package.json)。

    输出中有很多ENOENTENOTEMPTY错误

    编写npm是为了在安装时有效地使用资源,其中一部分是它尝试同时执行尽可能多的事情。有时这会导致竞争条件和其他同步问题。从npm 2.0.0开始,解决了大量这些问题。如果你看到ENOENT lstatENOENT chmodENOTEMPTY 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",那么

    1. 登录https://npmjs.com/
    2. 通过https://npmjs.com/password更改密码- 您甚至可以将其“更改”为相同的密码
    3. 清除与登录相关的字段~/.npmrc- 例如,通过运行sed -ie '/registry.npmjs.org/d' ~/.npmrc
    4. npm login

    它通常似乎工作。

    有关此问题的历史记录,请参阅https://github.com/npm/npm/issues/6641#issuecomment-72984009

    npm 挂在Windows上 addRemoteTarball

    检查是否在您的设置中设置了两个临时目录.npmrc

    > npm config ls -l
    

    查找定义tmpconfig变量的行。如果您找到多个,请删除除其中一个之外的所有内容。

    有关此异常问题的详细信息,请参阅https://github.com/npm/npm/issues/7590

    其他

    • 只需运行npm cache clean并再次尝试即可解决一些奇怪的问题
    • 如果您遇到问题npm install,请使用该-verbose选项获取更多详细信息。
  • 相关阅读:
    链表
    Wonder团队承接各种Web3D业务
    真我的信息
    一个人独自做长期项目,如何提高工作效率?
    【Java】类的结构
    【长知识】找书攻略
    【长知识】语义化版本控制
    【Java】Debug调试常用技巧
    【Web】Servlet三大作用域、JSP四大作用域
    【Web】Servlet基本概念
  • 原文地址:https://www.cnblogs.com/qdjl/p/9489078.html
Copyright © 2020-2023  润新知