一般使用 pnpm 的 electron 项目结构如下:
+ packages/
+ app # electron 文件夹
+ web # web端的文件夹
...其他项目
.npmrc
package.json
pnpm-workspace.yaml
pnpm-workspace.yaml 设置如下
packages:
# all packages in subdirs of packages/ and components/
- "packages/**"
# 排除 electron-builder 生成的 app
- "!**/dist/**"
.npmrc 设置如下,详情请看: https://www.electron.build/index.html#note-for-pnpm
node-linker=hoisted
所以打包的步骤为:
1.web项目 打包生成到 app项目下的 public 文件夹
2.app项目 使用 electron-builder 打包
只要设置了 node-linker=hoisted ,pnpm 就会形成扁平化的结构,然后 electron-builder 会自动寻找依赖进行打包,不需要考虑会有冗余的包出现。