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

11,129次阅读
没有评论

共计 4299 个字符,预计需要花费 11 分钟才能阅读完成。

背景

最近在构建 前端自动化部署 的方案中发现了一个问题,就是我在 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


git config --global url."https://".insteadof git://
git config --global url."https://github.com/".insteadOf "ssh://git@github.com/"

采用国内镜像源

  1. 修改成淘宝镜像源

    npm config set registry https://registry.npm.taobao.org
    
    npm config get registry
    
    
  2. 修改成华为云镜像

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

    npm config set registry http://mirrors.cloud.tencent.com/npm/
    
  4. 通过使用淘宝的 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 复制

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

然后去 /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 增强 – 高速下载

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

原文地址: npm install 下载不下来依赖解决方案

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-02发表,共计4299字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)