使用pnpm10初始化Electron项目提示Electron uninstall

最近正好有些需求,需要使用Electron来开发客户端。因为最近一直在用tauri,我把我这的默认包管理换成了pnpm。

所以就顺手使用pnpm来初始化Electron项目。

然后我运行项目时,提示我 Electron uninstall。

提示我 Electron uninstall 错误提示我 Electron uninstall 错误

我检查了下package.json,并重新安装下也不行。

当我再次使用 pnpm i 安装依赖时,我看到这句话。

pnpm 提示信息pnpm 提示信息

ok,尝试输入 pnpm approve-builds 并执行,会提示选择需要编译的依赖,用空格键选中,在输入 yes 确认即可。

pnpm 开始编译依赖pnpm 开始编译依赖

pnpm 会在 package.json 文件中添加onlyBuiltDependencies 配置节

pnpm 添加的配置pnpm 添加的配置

好的,问题解决了。


那么,为什么会导致这个问题发生呢?

原因是从pnpm10开始,为了安全默认在安装依赖时不运行相关build脚本。

而Electron在安装时需要运行脚本来构建二进制文件。

pnpm approve-builds 授权构建脚本pnpm approve-builds 授权构建脚本

这时候需要手动授权下运行构建脚本。

Brave在中文环境下编译报错

最近,突然接触到Brave这个浏览器,正好有研究源码的需求。就尝试在本地编译一个。

但是在编译过程中抛出报错:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd2 in position 506: invalid continuation byte

提示在python3\bin\Lib\subprocess.py 文件中1016行的问题。

报错位置报错位置

结合报错信息估计编码问题。尝试使用set PYTHONUTF8=1环境变量解决问题。

但是,仔细阅读报错发现是无法解码为UTF-8,估计和Windows中文系统默认编码GB2312有关。

又因为报错位置在python自带的子进程库中,所以排查到调用位置D:\brave\src\testing\scripts\common.py的69行,添加encoding='gb2312'

添加<code>encoding='gb2312'</code>添加encoding='gb2312'

问题解决~

一切正常一切正常

Windows 生成的p12证书,Mac提示密码错误

上篇文章说到使用客户端证书认证访问网站,但是使用证书需要安装。

但是我发现在Windows上生成的p12证书在MacOS上一直提示密码错误。

怀疑是生成时的加密算法的问题,这里记录下如何转换证书在MacOS上正常使用。

导入证书到系统

记得勾选可以导出私钥

记得勾选可以导出私钥记得勾选可以导出私钥

导出证书

设置中搜索证书管理器,因为刚才的证书安装到个人区域,所以我们这里选择 管理用户证书

Nginx 配置客户端证书认证

最近,有个内部服务需要使用公网上,担心被暴力刷API破解。

正好看到有个双向证书认证的方案,挺符合需求,踩了不少坑,简单记录下

生成证书

info:仅需要生成自签名客户端证书即可,服务端证书就用免费的在线申请的即可,不会有信任问题

可以参考微软官方文档:

生成自签名客户端证书

这里我就用openssl,来生成客户端证书

MacOS 如何调试 Chromium 代码

最近在开发过程中,发现有一个bug只在MacOS上出现。没办法了,看看如何在 MacOS 上调试 Chromium 代码。

简单在本文章记录下过程。

info: 请确定您的 MacOS 上的 Chromium 项目编译环境和依赖都正确。可以正常编译Chromium。

使用 GN 工具生成 Xcode 的工程文件

  1. 在 Chromium 项目中使用下面的命令生成 Xcode 的工程文件。
# 在./out/debug 路径生成文件
gn args --xcode-build-system=new --ide=xcode ./out/debug

1713071633431.png1713071633431.png