前端yarn工具打包时网络连接问题排查与解决

news2024/12/22 20:14:29

最近线上前端打包时提示 “There appears to be trouble with your network connection”,以此文档记录下排查过程。

前端打包方式

  • docker启动临时容器打包,命令如下
docker run --rm -w /app -v `pwd`:/app alpine-node-common:v16.20-pro sh -c "yarn install && yarn build"
  • Dockfile如下:
FROM alpine:3.16

RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories \
    && apk update && apk upgrade \
    && apk add --no-cache nodejs npm && npm install -g yarn \
    && npm config set registry https://registry.npmmirror.com \
    && yarn config set registry https://registry.npmmirror.com \
    && yarn config set ignore-engines true  \
    && yarn config set "strict-ssl" false -g \
    && rm -rf /var/cache/apk/* && rm -rf /tmp/*

CMD ["node"]

排查

  • 一开始想到是容器内的网络问题,容器的默认网络模式是桥接,遂改成主机模式,但仍然还是提示网络问题
docker run --rm --network=host -w /app -v `pwd`:/app alpine-node-common:v16.20-pro sh -c "yarn install && yarn build"
  • 然后就开始排查宿主机的问题,以为是容器内阿里云的镜像不生效,发现网络正常。
dev@localhost:~$ curl -I https://registry.npmmirror.com
HTTP/2 200 
server: Tengine
content-type: application/json; charset=utf-8
content-length: 1264
strict-transport-security: max-age=5184000
date: Fri, 20 Dec 2024 08:42:13 GMT
vary: Origin
....
  • 我又看了一遍报错信息,发现在yarn install的时候,读取的竟然是官方源地址: https://registry.yarnpkg.com,但我在dockerfile中修改了源为阿里云的镜像源。
yarn install v1.22.22
[1/4] Resolving packages...
warning unplugin-auto-import > magic-string > sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead
[2/4] Fetching packages...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
error Error: https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz: ETIMEDOUT
    at Timeout._onTimeout (/usr/local/lib/node_modules/yarn/lib/cli.js:142070:19)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)
info There appears to be trouble with your network connection. Retrying...
info There appears to be trouble with your network connection. Retrying...

AI解惑

  • 我先看了项目的yarn.lock文件,发现也是官方源地址: https://registry.yarnpkg.com,此时报错差不多明白了。由于官方源站在国外,国内访问速度极慢,导致下载超市才会提示网络问题. 但我仍然不理解,设置了阿里云的源下载仍会去官方源地址下载,遂去问了AI。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决

至此算是明白为何明明设置了阿里云镜像源,仍会打包失败了,遂让前端同事把yarn.lock文件的地址批量修改为阿里云镜像源地址即可,问题解决!

总结

关于yarn.lock文件中地址的访问流程:

  • 如果是第一次运行项目,yarn会读取yarn config list中设置的registry的地址来下载依赖,如果没设置则使用官方源地址。
  • 如果是已有项目安装依赖,有yarn.lock文件则直接读取,不会在读取yarn config list中设置的registry的地址了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2263873.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BenchmarkSQL使用教程

1. TPC-C介绍 Transaction Processing Performance Council (TPC) 事务处理性能委员会,是一家非盈利IT组织,他们的目的是定义数据库基准并且向产业界推广可验证的数据库性能测试。而TPC-C最后一个C代表的是压测模型的版本,在这之前还有TPC-A、…

Linux网络基础--传输层Tcp协议(上) (详细版)

目录 Tcp协议报头: 4位首部长度: 源端口号和目的端口号 32位序号和确认序号 标记位 超时重传机制: 两个问题 连接管理机制 三次握手,四次挥手 建立连接,为什么要有三次握手? 先科普一个概念&…

全志H618 Android12修改doucmentsui鼠标单击图片、文件夹选中区域

背景: 由于当前的文件管理器在我们的产品定义当中,某些界面有改动的需求,所以需要在Android12 rom中进行定制以符合当前产品定义。 需求: 在进入File文件管理器后,鼠标左击整个图片、整个文件夹可以选中该类型,进行操作,故代码分析以及客制化如下: 主要涉及的代码:…

Unity命令行传递自定义参数 命令行打包

命令行参数增加位置 -executeMethod 某脚本.某方法 参数1 参数2 参数3 ... 例如执行EditorTest.GetCommandLineArgs方法 增加两个命令行参数 Version=125 CDNVersion=100 -executeMethod EditorTest.GetCommandLineArgs Version=125 CDNVersion=100 Unity测试脚本 需要放在…

如何重新设置VSCode的密钥环密码?

故障现象: 忘记了Vscode的这个密码: Enter password to unlock An application wants access to the keyring “Default ke... Password: The unlock password was incorrect Cancel Unlock 解决办法: 1.任意terminal下,输入如下…

电子发票汇总改名,批量处理电子发票问题

今天给大家推荐一个财务方面工作的软件。可以帮你解决很多财务。发票方面的问题。 电子发票汇总改名 批量处理电子发票问题 这个软件安装之后。会在桌面上分成三个小软件,分别是修改单位信息、自定义命名规则和电子发票汇总改名。 你可以在这个软件里提取PDF或者of…

Linux——卷

Linux——卷 介绍 最近做的项目,涉及到对系统的一些维护,有些盘没有使用,需要创建逻辑盘并挂载到指定目录下。有些软件需要依赖空的逻辑盘(LVM)。 先简单介绍一下卷的一些概念,有分区、物理存储介质、物…

MySQL通用语法 -DDL、DML、DQL、DCL

SQL 全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准 。 SQL通用语法 MySQL语言的通用语法。 SQL语句可以单行或多行书写,以分号结尾。SQL语句可以使用空格/缩进来增强…

利用DnslogSqlinj工具DNSlog注入

工具下载链接 https://github.com/adooo/dnslogsqlinj 配置 将域名和API进行一个更改 之后再安装两个python2的库就可以使用dnslog进行自动化注入了 python2安装pip2 curl https://bootstrap.pypa.io/2.7/get-pip.py -o get-pip.py python2 get-pip.py库 pip2 install geven…

QT网络(一):主机信息查询

网络简介 在QT中进行网络通信可以使用QT提供的Qt Network模块,该模块提供了用于编写TCP/IP网络应用程序的各种类,如用于TCP通信的QTcpSocket和 QTcpServer,用于 UDP 通信的 QUdpSocket,还有用于网络承载管理的类,以及…

STM32-笔记5-按键点灯(中断方法)

1、复制03-流水灯项目,重命名06-按键点灯(中断法) 在\Drivers\BSP目录下创建一个文件夹exti,在该文件夹下,创建两个文件exti.c和exti.h文件,并且把这两个文件加载到项目中,打开项目工程文件 加载…

重塑医院挂号体验:SSM 与 Vue 搭建的预约系统设计与实现

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

mysql的事务控制和数据库的备份和恢复

事务控制语句 行锁和死锁 行锁 两个客户端同时对同一索引行进行操作 客户端1正常运行 客户端2想修改,被锁行 除非将事务提交才能继续运行 死锁 客户端1删除第5行 客户端2设置第1行为排他锁 客户端1删除行1被锁 客户端2更新行5被锁 如何避免死锁 mysql的备份和还…

C# OpenCV机器视觉:尺寸测量

转眼就是星期一了,又到了阿强该工作的时候了!阿强走进了他作为机器视觉工程师的办公室,准备迎接新一天的挑战。随着周末的结束,他心中暗想:“如果我能让机器像我一样聪明,那就太好了!” 正当他…

四川托普信息技术职业学院教案1

四川托普信息技术职业学院教案 【计科系】 周次 第 1周,第1次课 备 注 章节名称 第1章 XML语言简介 引言 1.1 HTML与标记语言 1.2 XML的来源 1.3 XML的制定目标 1.4 XML概述 1.5 有了HTML了,为什么还要发展XML 1.5.1 HTML的缺点 1.5.2 XML的特点 1.6 X…

网络安全防范

实践内容 学习总结 PDR,$$P^2$$DR安全模型。 防火墙(Firewall): 网络访问控制机制,布置在网际间通信的唯一通道上。 不足:无法防护内部威胁,无法阻止非网络传播形式的病毒,安全策略…

GhostRace: Exploiting and Mitigating Speculative Race Conditions-记录

文章目录 论文背景Spectre-PHT(Transient Execution )Concurrency BugsSRC/SCUAF和实验条件 流程Creating an Unbounded UAF WindowCrafting Speculative Race ConditionsExploiting Speculative Race Conditions poc修复flush and reload 论文 https:/…

c4d动画怎么导出mp4视频,c4d动画视频格式设置

宝子们,今天来给大家讲讲 C4D 咋导出mp4视频的方法。通过用图文教程的形式给大家展示得明明白白的,让你能轻松理解和掌握,不管是理论基础,还是实际操作和技能技巧,都能学到,快速入门然后提升自己哦。 c4d动…

你的第一个博客-第一弹

使用 Flask 开发博客 Flask 是一个轻量级的 Web 框架,适合小型应用和学习项目。我们将通过 Flask 开发一个简单的博客系统,支持用户注册、登录、发布文章等功能。 步骤: 安装 Flask 和其他必要库: 在开发博客之前,首…

嵌入式单片机的运行方式详解

程序的运行方式轮询系统 指的是在程序运行时,首先对所有的硬件进行初始化,然后在主程序中写一个死循环,需要运行的功能按照顺序进行执行,轮询系统是一种简单可靠的方式,一般适用于在只需要按照顺序执行的并且没有外部事件的影响的情况下。 程序的运行过程中出现如按键等需…