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

背景

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

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

报错信息

tex 复制代码
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

或者

tex 复制代码
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

或者

tex 复制代码
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

解决方案

替换为https

bash 复制代码
# 在npm install执行之前,输入下面命令
git config --global url."https://".insteadof git://
git config --global url."https://github.com/".insteadOf "ssh://git@github.com/"

采用国内镜像源

  1. 修改成淘宝镜像源

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

    bash 复制代码
    npm config set registry https://mirrors.huaweicloud.com/repository/npm/
  3. 修改为腾讯云镜像

    bash 复制代码
    npm config set registry http://mirrors.cloud.tencent.com/npm/
  4. 通过使用淘宝的cnpm安装

    bash 复制代码
    npm install -g cnpm --registry=https://registry.npm.taobao.org

最后的安装命令

bash 复制代码
npm install --registry=https://registry.npm.taobao.org

使用CDN加速

bash 复制代码
git config --global url."https://hub.fgit.cf".insteadOf "https://github.com"

注意:这个是对 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目录下,进行映射

bash 复制代码
20.205.243.166  github.com

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

代理

查看是否使用了代理

bash 复制代码
git config --global --get http.proxy
git config --global --get https.proxy

关闭代理

bash 复制代码
git config --global --unset http.proxy
git config --global --unset https.proxy

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

bash 复制代码
git config --global http.proxy http://127.0.0.1:41091
git config --global https.proxy http://127.0.0.1:41091

特殊依赖设置

我本次项目没下载下来的原因是因为 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有关,那么咱们就单独找到这些包的国内镜像地址,并用镜像地址执行该命令

如下:

bash 复制代码
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

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

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

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

相关推荐
Lucky_Turtle18 小时前
【Node】npm install报错npm error Cannot read properties of null (reading ‘matches‘)
前端·npm·node.js
水冗水孚1 天前
20张图的保姆级教程,记录使用Verdaccio在Ubuntu服务器上搭建Npm私服
npm
Irene19911 天前
npm 完整生命周期脚本及特点
npm·生命周期
登山者2 天前
npm发布报错急救手册:快速解决2FA与令牌问题
前端·npm
Asurplus2 天前
【VUE】15、安装包管理工具yarn
前端·vue.js·npm·node.js·yarn
fpl11162 天前
npm :无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本
前端·vscode·npm·node.js·命令模式
vipbic3 天前
解决npm publish的404/403和配置警告全记录
前端·npm·node.js
松莫莫3 天前
Windows 下使用 nvm 安装与管理 Node.js(完整指南)
windows·笔记·npm·node.js
LYFlied4 天前
幽灵依赖详解
npm·pnpm·打包工具·yarn·工程化·包管理工具·幽灵依赖
LYFlied4 天前
前端项目包管理器怎么选?
前端·面试·npm·pnpm·yarn·工程化·包管理器