一般使用 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 会自动寻找依赖进行打包,不需要考虑会有冗余的包出现。