electron-builder 和 pnpm(monorepo) 一起使用

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