背景:
2024年2月21日,最新的Electron v29.0.1长期支持发布。本着追求更新、更快、更强的原则果断更新,计划5分钟内解决战斗,然而一直报RequestError: certificate has expired的错误。再三确认淘宝源更换为最新地址!!!
pnpm update //修改package.json “electron”: “^29.0.1”,
pnpm install electron@v29.0.1
甚至大哥我安装 robotjs 模块,你Electron报啥子错,还是
v28.2.4版!都报一样的 RequestError: certificate has expired(请求错误:证书已过期)
〇、一击必中
🫠来自采坑后的自信。
问题描述 确认淘宝源更换为最新地址,同样尝试了清空pnpm缓存、清除代理、更换镜像、跳过SSL验证,仍然是RequestError: certificate has expired…
//配置最新的淘宝镜像源
pnpm config set registry https://registry.npmmirror.com
原因 Electron使用了自定义镜像,当使用pnpm、npm、cpnm切换npm镜像源时,ELECTRON_MIRROR的值并没有被修改,例如pnpm 使用pnpm config list
查看。
建议
例如淘宝镜像源执行以下两条语句,单独为Electron执行一次配置electron_mirror
:
多执行 pnpm config list 查看是否成功。
//配置 单独为Electron执行一次配置`electron_mirror`
pnpm config set electron_mirror https://registry.npmmirror.com/-/binary/electron/
一、翻车收获
1.安装其他模块时,例如pnpm install robotjs时,为啥是electron证书报错
在底层, Electron 的 JavaScript API 绑定了包含默认实现的二进制文件。 每次当你从 npm 注册表安装 electron
时,默认情况下都会在 postinstall
步骤中下载该二进制文件。
你可以设置 ELECTRON_SKIP_BINARY_DOWNLOAD
环境变量为1来阻止二进制文件被下载。 例如,在运行模拟 electron
模块的单元测试时,此功能在连续集成环境中很有用。
下图临时在在当前 CMD 会话中设置环境变量。仅在当前命令行窗口有效,关闭窗口后环境变量失效。
长期设置需要 配置window系统环境变量。
2.pnpm配置环境变量,在修改什么文件
pnpm config set registry registry.npmmirror.com
我这里是 C:\Users\25051.npmrc 被修改,可以观察到修改时间的变化
3.pnpm常见命令
查看pnpm安装位置 pnpm root -g
其他pnpm常见命令
pnpm 的常见命令,全局命令通常加上-g,例如:
全局安装模块pnpm install -g <模块>
1.安装
pnpm install <模块> // 简写为 pnpm i
pnpm install <模块>@<version> //特定版本 pnpm install electron@v29.0.1
2.卸载
pnpm uninstall <模块> //简写为 pnpm rm <模块>
**3.更新**
“`shell
pnpm update //根据package.json更新,简写为 pnpm up
pnpm update –latest //更新至最新版本
pnpm update <模块> // 更新指定<模块>至最新
“`
4.运行
pnpm run <script-name> // 运行 package.json 中的脚本
pnpm <script-name> //直接运行脚本别名
pnpm run start
pnpm start //以上的简写
pnpm 百万牛牛 //在package.json中配置的别名
4.常见的npm镜像源
常用的 npm 源主要包括以下几个:
-
官方源:
- npm 官方源:registry.npmjs.org/
- Yarn 默认源:registry.yarnpkg.com/ (尽管 Yarn 有自己的协议层,但底层仍然是基于 npm registry 的)
-
国内镜像源:
- 淘宝 NPM 镜像:registry.npmmirror.com/ (中国最大的 npm 镜像源,由阿里巴巴集团维护)
- 腾讯云 NPM 镜像:mirrors.cloud.tencent.com/npm/
- cnpmjs 镜像:r.cnpmjs.org/ (又名 cnpm,是由淘宝团队维护的另一个 npm 镜像服务)
- 网易 NPM 镜像:npm.coding.net/
- 环境云 NPM 镜像:mirror.envcloud.cn/repository/…
- 七牛云 NPM 镜像:npm.qiniu.com/
-
其他公共镜像源:
- 中科大镜像:mirrors.ustc.edu.cn/npm/
- 欧洲镜像源:registry.npmjs.eu/
在国内由于网络问题,使用国内的镜像源可以显著提高下载速度和稳定性。需要注意的是,各个镜像站都承诺定期同步官方源的数据,但由于同步策略和延迟的原因,可能存在一些新版包在官方源上线后一段时间才在镜像源上可用的情况。此外,对于私有模块,仍然需要直接连接到官方源才能获取和发布。
二、参考
1.CSDN。Electron项目使用yarn/npm/cnpm时报certificate has expired…的问题
3.AI.通义千问
4.2024 年 1 月 22 日,淘宝源 HTTPS 正式过期!
原文链接:https://juejin.cn/post/7338617055149588507 作者:百万蹄蹄向前冲