昨天发的 npm 包,却因为 registry 同步问题无法安装使用

用过 HBuilderX 云打包的都知道,云上面的 Android 环境很有限,其实并不能覆盖 uniapp 生态所有的版本,甚至说只能覆盖最新的一两个版本。

如果你需要用到 HBuilderX 安卓云打包,就必须及时跟进 HBuilderX 的版本更新,否则可能会因为编译时和运行时版本不一致而在APP运行时爆出提示,如果这个提示被用户看见,那就有点尴尬。

但有时候我们也不想一直跟进最新的版本,此时只能基于 uniapp 提供的 SDK 自行搭建安卓离线打包环境(这不是本文关注的内容)。

今天是 2023年8月18日,打开 HBuilderX 时提示我更新 3.8.12.20230817 版本,我没有犹豫先进行了更新。

当我打开另一个通过 cli 方式安装 uniapp 开发环境的项目时,则需要通过npx @dcloudio/uvm更新相关编译和运行时环境。因为 cli 方式的项目,它的编译器是跟着项目走的,而不是采用 HBuilderX 内置的编译器。

但是当我执行npx @dcloudio/uvm命令时,报错了。

Invalid version: 3.8.12.20230817

于是我先找到@dcloudio/uvm中的version.js相关源码查看,发现它的基本更新步骤是:

  1. 默认情况,优先去分析 HBuilderX 官方的一个版本号相关的 json 文件,拿到最新的版本号。

  1. 然后去 registry fetch 相关包的信息。

  1. 根据自定义的一些规则去匹配版本号,找到相关的 npm 包的具体版本再下载。

分析了基本过程,再考虑问题是:

Invalid version: 3.8.12.20230817

那么关键点肯定是没找到这个版本号对应的某些 npm 包的版本。

我首先确定了一下@dcloudio/uvm采用的 registry,默认是 cnpm,也就是国内的 npmmirror。

debug 后发现 npm 找不到其中一个包@dcloudio/vue-cli-plugin-uni的最新版本:

No matching version found for @dcloudio/vue-cli-plugin-uni@2.0.2-3081220230817001

于是我到 npm 核实了一下,这个包的2.0.2-3081220230817001版本实际上是存在的。

那么是哪里出了问题呢?我想大概率是 registry 的问题,在国内环境,我们通常会用到 npmmirror,如果镜像站和源站的资源信息不同步,就有可能会出现这个问题。

我们发布 npm 包,都是发布到registry.npmjs.org。而为了快速下载安装 npm 包,我们又会选择使用registry.npmmirror.com。所以今天遇到的问题是由于两个 registry 不同步导致的。

我们找到 npmmirror 镜像站,发现它提供了一个同步按钮,这真的是太棒了。否则大概率只能焦急地等待镜像站在某个时间点触发同步操作;或者考虑更换 registry,那么 lock 文件也得变,风险太大。

点击这个同步按钮则会从 npmjs 源站进行同步,几分钟后问题就得到了解决。

以上问题,特此记录。

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

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

相关文章

全面升级,票据识别新纪元:合合信息TextIn多票识别2.0

票据识别 - 自动化业务的守门员 发票、票据识别,是OCR技术和RPA、CMS系统结合的一个典型场景,从覆盖率、覆盖面的角度来说,应该也是结合得最成功的场景之一。 产品简介 国内通用票据识别V2.0(简称“多票识别2.0”)是…

Java 集合框架详谈及代码分析(Iterable->Collection->List、Set->各接口实现类、Map->各接口实现类)

目录 Java 集合框架详谈及代码分析(Iterable->Collection->List、Set->各接口实现类、Map->各接口实现类)1、集合概述1-1:Java 集合概述1-2:List、Set、Map 三者的区别?1-3:集合框架底层数据结…

腾讯云[HiFlow】| 自动化 -------HiFlow:还在复制粘贴?

文章目录 前言:一:HiFlow是什么二:功能介绍1.全连接2.自动化2.1定时处理特定任务2.2实时同步变更信息2.3及时获取通知提醒 3.零代码4.多场景5.可信赖 三:用户体验最后 前言: 随着网络时代的不断发展,自动化…

KEYSIGHT是德E5063A网络分析仪

主要功能特性 E5061B 选择50或75Q输入 使用低频-射频选件(选件3L5/3L4/3L3)满足各类应用需求 频率最低达到5Hz 网络分析和阻抗分析相结合(需要选件005) 支持BenchVue 软件 E5063A 2端口,50Q,S参数测试仪 选择最适合您的测试需求和预算的VNA频率选件&…

spark学习总结

系列文章目录 第1天总结:spark基础学习 1- Spark基本介绍(了解)2- Spark入门案例(掌握)3- 常见面试题(掌握) 文章目录 系列文章目录前言一、Spark基本介绍1、Spark是什么1.1 定义1.2 Spark与M…

如何在2分钟内测出浓香型白酒的年份?

执笔 | 敏 敏 编辑 | 古利特 金庸先生所著的武侠小说《射雕英雄传》第十二回中,“北丐”洪七公在教授郭靖降龙十八掌时,用陈年美酒形容“亢龙有悔”——“(亢龙有悔)好比陈年美酒,上口不辣,后劲却醇厚无比…

【机器学习】使用Python实现图神经网络(GNN):图结构数据的分析与应用

🔥 个人主页:空白诗 文章目录 一、引言二、图神经网络的基础知识1. 图的基本概念和术语2. 传统的图分析方法3. 图神经网络的基本原理4. GNN的基本模型 三、主要的图神经网络模型1. 图卷积网络(Graph Convolutional Network, GCN)2…

【并发编程】JUC并发编程

JUC并发编程 1. 线程基础知识复习2. CompletableFuture2.1 Future接口理论知识复习2.2 Future接口常用实现类FutureTask异步任务2.2.1 Future接口能干什么2.2.2 Future接口相关架构2.2.3 Future编码实战和优缺点分析2.2.4 完成一些复杂的任务 2.3 CompletableFuture对Future的改…

数学建模基础:统计模型

目录 前言 一、概率与统计基础 二、统计模型 三、Matlab统计工具箱 四、实例示范:市场调查分析 步骤 1:数据导入 步骤 2:数据可视化 步骤 3:建立多元线性回归模型 步骤 4:模型验证 步骤 5:模型应…

ArcGIS制作规划图卫星影像地图虚化效果

文章目录 一、效果展示二、加载数据三、效果制作四、注意事项一、效果展示 二、加载数据 订阅专栏后,从csdn私信查收实验数据资料,加载ArcGIS制作规划图卫星影像地图虚化效果.rar中的数据,如下所示: 三、效果制作 1. 创建掩膜图层 新建一个矢量图层,因为主要是作图需要…

深入探讨:UART与USART在单片机中串口的实际应用与实现技巧

单片机(Microcontroller Unit, MCU)是一种集成了处理器、存储器和输入输出接口的微型计算机。它广泛应用于嵌入式系统中,用于控制各类电子设备。UART和USART是单片机中常见的通信接口,负责串行数据传输。下面我们详细介绍它们在单…

Qt底层原理:深入解析QWidget的绘制技术细节(1)

在Qt5中,QWidget的绘制流程比较分散,网上介绍的文章也很少,因此写一篇文章总结记录一下这部分的知识点。 笔者使用的是Qt5.15.2的源码。 基本的绘制流程:从update到合成 更新请求(Invalidate): 当一个QWidg…

001、DM8安装

参照:https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.html 1. 准备工作 操作系统查看 [rootora19c ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)新建用户 [rootora19c ~]# groupadd dinstall -g 2001 [rootora19c ~]# …

数据分析第十二讲 数据可视化入门(一)

数据可视化入门(一) 在完成了对数据的透视之后,我们可以将数据透视的结果通过可视化的方式呈现出来,简单的说,就是将数据变成漂亮的统计图表,因为人类对颜色和形状会更加敏感,然后再进一步解读…

AXI三板斧之Outstanding、Out-of-order、interleaving

1、AXI三板斧之Outstanding 可以不用等单个命令的响应,直接连续发送N个命令(N>1),假设Slave端的Outstanding能力为N时(N>1),那么Master端可以在Slave不返回读数据的情况下,连…

SARscape——Frost斑点滤波

目录 一、算法原理1、概述2、参考文献 二、软件操作三、结果展示1、原始图像2、滤波结果 一、算法原理 1、概述 2、参考文献 [1] 廉小亲,黄雪,高超,等. 基于Frost滤波和改进CNN的SAR图像TR方法 [J]. 计算机仿真, 2023, 40 (05): 49-55233. [2] SAR图像相干斑滤波算法研究_朱俊…

资深专家教你如何开展新版FMEA培训

新版FMEA的出现,不仅优化了原有的分析流程,更引入了一系列创新的理念和方法,为企业提供了更为全面、细致的风险评估与管理手段。因此,开展新版FMEA培训对于提升企业的质量管理水平、增强产品竞争力具有重要意义。 本文&#xff0…

【昇思25天学习打卡营打卡指南-第一天】基本介绍与快速入门

昇思MindSpore介绍 昇思MindSpore是一个全场景深度学习框架,旨在实现易开发、高效执行、全场景统一部署三大目标。 其中,易开发表现为API友好、调试难度低;高效执行包括计算效率、数据预处理效率和分布式训练效率;全场景则指框架…

【CT】LeetCode手撕—92. 反转链表 II

目录 题目1- 思路2- 实现⭐92. 反转链表 II——题解思路 3- ACM实现 题目 原题连接:92. 反转链表 II 1- 思路 模式识别:翻转 给定 left 和 right 固定区间的链表 ——> ①虚拟头结点 ②三个指针方式实现 2- 实现 ⭐92. 反转链表 II——题解思路 c…

面向对象进阶--抽象(Java 抽象)详解

1.1 抽象类引入 父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了(因为子类对象会调用自己重写的方法)。换句话说,父类可能知道…