Skip to content

ybubuzi/split-asar-builder

Repository files navigation

split-asar-builder

一个用于分隔 asar 文件的构建工具同时支持第三方模块别名 使业务代码与node_modules依赖的代码分离,程序打包后将在输出路径下生成app.asardeps_x.asar文件

app.asar为业务代码,deps_x.asar为依赖代码,x为可变数字,用于区分不同版本的依赖 后续计划,当项目依赖更新后通过分多个deps_x.asar文件来减少第三方依赖更新包的大小,避免全量更新

安装

npm install @bubuzi/split-asar-builder -D

使用

修改electron.vite.config.ts文件

import { splitAsarPlugin } from "@bubuzi/split-asar-builder";

export default defineConfig(() => {
  return {
    main: {
      plugins: [splitAsarPlugin()],
    },
  };
});

修改package.json文件中的打包命令,将electron-builder替换为split-asar-builder

{
  "scripts": {
    "build:win": "npm run build && split-asar-builder --win",
    "build:mac": "npm run build && split-asar-builder --mac",
    "build:linux": "npm run build && split-asar-builder --linux"
  }
}

模块别名

增加第三方模块的别名,如以下代码

splitAsarPlugin({
  moduleAlias: {
    "better-sqlite3": "better-sqlite3-multiple-ciphers",
  },
});

这样在开发中使用require("better-sqlite3")在编译后实际引入的是require("better-sqlite3-multiple-ciphers")

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published