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
或者
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
或者
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
# 在npm install执行之前,输入下面命令
git config --global url."https://".insteadof git://
git config --global url."https://github.com/".insteadOf "ssh://git@github.com/"
采用国内镜像源
-
修改成淘宝镜像源
npm config set registry https://registry.npm.taobao.org # 验证命令是否生效 npm config get registry # 如果返回https://registry.npm.taobao.org,说明镜像配置成功。
-
修改成华为云镜像
npm config set registry https://mirrors.huaweicloud.com/repository/npm/
-
修改为腾讯云镜像
npm config set registry http://mirrors.cloud.tencent.com/npm/
-
通过使用淘宝的cnpm安装
npm install -g cnpm --registry=https://registry.npm.taobao.org
最后的安装命令
npm install --registry=https://registry.npm.taobao.org
使用CDN加速
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目录下,进行映射
20.205.243.166 github.com
点就是不确定什么时候就又不可以访问了,再去查新的IP替换hosts里面的就可以了
代理
查看是否使用了代理
git config --global --get http.proxy
git config --global --get https.proxy
关闭代理
git config --global --unset http.proxy
git config --global --unset https.proxy
或者开启代理,并校验代理是否正确
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
有关,那么咱们就单独找到这些包的国内镜像地址,并用镜像地址执行该命令
如下:
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 增强 - 高速下载
最终是采用该方案来解决的问题!!!!!!