• npm install 下载不下来依赖解决方案


    背景

    最近在构建 前端自动化部署 的方案中发现了一个问题,就是我在npm install的时候,有时候成功,有时候不成功,而且什么代码也没发生更改,报错也就是那么几个错,所以在此也整理了一下遇到这种情况,应该怎么解决!!!

    **最终是通过最后一个方案才解决的问题!!**不过不同人不同种情况,建议都试一下,没准是哪个成功了呢。

    报错信息

    npm ERR! code 128
    npm ERR! Command failed: git clone --depth=1 -q -b release-tui/v1.9.0 ssh://git@github.com/seonim-ryu/Squire.git /root/.npm/_cacache/tmp/git-clone-aefc5152
    npm ERR! warning: templates not found in /tmp/pacote-git-template-tmp/git-clone-398b0101
    npm ERR! fatal: unable to access 'https://github.com/seonim-ryu/Squire.git/': Failed to connect to github.com port 443 after 127228 ms: Couldn't connect to server
    npm ERR! 
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /root/.npm/_logs/2023-11-18T05_05_09_791Z-debug.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    或者

    npm ERR! Error while executing:
    npm ERR! /usr/local/bin/git ls-remote -h -t https://github.com/nhn/raphael.git
    npm ERR!
    npm ERR! fatal: repository 'https://github.com/nhn/raphael.git/' not found
    npm ERR!
    npm ERR! exited with error code: 128
    
    npm ERR! A complete log of this run can be found in:
    npm ERR! /Users/zax/.npm/_logs/2020-11-04T07_35_27_206Z-debug.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    或者

    npm ERR! code 128
    npm ERR! Command failed: git clone --depth=1 -q -b release-tui/v1.9.0 git://github.com/seonim-ryu/Squire.git /root/.npm/_cacache/tmp/git-clone-c2406dda
    npm ERR! warning: templates not found in /tmp/pacote-git-template-tmp/git-clone-b24013c3
    npm ERR! fatal: unable to access 'https://github.com/seonim-ryu/Squire.git/': Failure when receiving data from the peer
    npm ERR! 
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /root/.npm/_logs/2023-11-18T05_22_44_186Z-debug.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    解决方案

    替换为https

    # 在npm install执行之前,输入下面命令
    git config --global url."https://".insteadof git://
    git config --global url."https://github.com/".insteadOf "ssh://git@github.com/"
    
    • 1
    • 2
    • 3

    采用国内镜像源

    1. 修改成淘宝镜像

      npm config set registry https://registry.npm.taobao.org
      # 验证命令是否生效
      npm config get registry
      # 如果返回https://registry.npm.taobao.org,说明镜像配置成功。
      
      • 1
      • 2
      • 3
      • 4
    2. 修改成华为云镜像

      npm config set registry https://mirrors.huaweicloud.com/repository/npm/
      
      • 1
    3. 修改为腾讯云镜像

      npm config set registry http://mirrors.cloud.tencent.com/npm/
      
      • 1
    4. 通过使用淘宝的cnpm安装

      npm install -g cnpm --registry=https://registry.npm.taobao.org
      
      • 1

    最后的安装命令

    npm install --registry=https://registry.npm.taobao.org
    
    • 1

    使用CDN加速

    git config --global url."https://hub.fgit.cf".insteadOf "https://github.com"
    
    • 1

    注意:这个是对 https 协议进行代理设置,也就是仅对 git clone https://www.github.com/xxxx/xxxx.git 这种命令有效。对于 SSH 协议,也就是 git clone git@github.com:xxxxxx/xxxxxx.git 这种,依旧是无效的。

    使用域名映射

    github包下载不下来本质还是因为被墙了,找到可以访问github的DNS,然后修改本地的host文件,直接访问

    查询github的DNS 选择一个TTL值最小的ip复制

    在这里插入图片描述

    然后去/etc/hosts目录下,进行映射

    20.205.243.166  github.com
    
    • 1

    点就是不确定什么时候就又不可以访问了,再去查新的IP替换hosts里面的就可以了

    代理

    查看是否使用了代理

    git config --global --get http.proxy
    git config --global --get https.proxy
    
    • 1
    • 2

    关闭代理

    git config --global --unset http.proxy
    git config --global --unset https.proxy
    
    • 1
    • 2

    或者开启代理,并校验代理是否正确

    git config --global http.proxy http://127.0.0.1:41091
    git config --global https.proxy http://127.0.0.1:41091
    
    • 1
    • 2

    特殊依赖设置

    我本次项目没下载下来的原因是因为 tui-editor组件,在这里面修改一些配置,即可下载下来

    1、修改package.json文件

    将 “tui-editor”: “1.3.3” 替换成 “@toast-ui/editor”: “^3.1.3”,

    2、找到 src/components/MarkdownEditor/index.vue 文件修改代码

    1.import ‘tui-editor/dist/tui-editor.css’ 替换成 import ‘@toast-ui/editor/dist/toastui-editor.css’

    2.import Editor from ‘tui-editor’ 替换成 import Editor from ‘@toast-ui/editor’

    3.删除 import ‘tui-editor/dist/tui-editor-contents.css’

    4.将所有 editor.getValue 替换成 editor.getMarkdown

    5.将所有 editor.setValue 替换成 editor.setMarkdown

    6.将 editor.getHtml 替换成 editor.getHTML
    \7. 将 editor.remove() 替换成 editor.destroy()

    3.找到 src/components/MarkdownEditor/default-options.js文件修改代码

    toolbarItems: [
    ‘heading’,‘bold’,‘italic’,‘strike’,‘divider’,
    ‘hr’,‘quote’,‘divider’,
    ‘ul’,‘ol’,‘task’,‘indent’,‘outdent’,‘divider’,
    ‘table’,‘image’,‘link’,‘divider’,
    ‘code’,‘codeblock’
    ]
    替换成
    toolbarItems: [
    [‘heading’, ‘bold’, ‘italic’, ‘strike’],
    [‘hr’, ‘quote’],
    [‘ul’, ‘ol’, ‘task’, ‘indent’, ‘outdent’],
    [‘table’, ‘image’, ‘link’],
    [‘code’, ‘codeblock’]
    ]

    参考:npm install失败的分析与解决方案,以及修复完成的代码地址

    终极方案

    在报错信息提示下载不下来的包执行以下命令

    比如报错信息上有两个包seonim-ryu/Squire.git/nhn/raphael.git/,而且报错信息都跟git ls-remote -h -t xxx有关,那么咱们就单独找到这些包的国内镜像地址,并用镜像地址执行该命令

    如下:

    git config --global url.'https://hub.fgit.cf/nhn/raphael.git'.insteadOf 'https://github.com/nhn/raphael.git'
    git config --global url.'https://hub.fgit.cf/seonim-ryu/Squire.git'.insteadOf 'git://github.com/seonim-ryu/Squire.git'
    git config --global url.'https://hub.fgit.cf/adobe-webplatform/eve.git'.insteadOf 'git://github.com/adobe-webplatform/eve.git'
    git ls-remote -h -t https://hub.fgit.cf/nhn/raphael.git
    git ls-remote -h -t https://hub.fgit.cf/seonim-ryu/Squire.git
    
    • 1
    • 2
    • 3
    • 4
    • 5

    参考:安装依赖时错误:fatal: repository ‘https://github.com/nhn/raphael.git/’ not found · Issue #3491 · PanJiaChen/vue-element-admin

    其中,镜像地址可以安装油猴插件,然后搜索:Github 增强 - 高速下载

    最终是采用该方案来解决的问题!!!!!!

  • 相关阅读:
    并发编程之CompletableFuture全网最细最全用法(一)
    【Linux】在Xilinx平台上实现UVC Gadget(2)- 解决dwc3驱动bug
    docker-consul
    前端实现websocket通信讲解(vue2框架)
    cesium 相机围绕视图中心点旋转
    基于STC12C5A60S2系列1T 8051单片的IIC总线器件模数芯片PCF8591实现模数转换应用
    Educational Codeforces Round 124 (Rated for Div. 2) CD题解
    基于adb操作安卓手机封装的python库
    编译[Bug]——too few arguments for template template parameter “Tuple“ detected
    Elasticsearch:使用字节大小的向量节省空间 - 8.6
  • 原文地址:https://blog.csdn.net/zz18435842675/article/details/134502333