Z ZPI 文档 v0.3.8
介绍页

源码

scripts/desktop-build.mjs

javascript58 行查看原文
import { rm } from "node:fs/promises";

/** Start builds from generated output only, so retired entry points cannot ship again. */
export async function cleanDesktopBuild() {
  await rm(new URL("../packages/desktop/dist/", import.meta.url), { recursive: true, force: true });
}

export const mainBuild = {
  entry: [
    "packages/desktop/src/main/index.ts",
    "packages/desktop/src/main/diff-worker.ts",
    "packages/desktop/src/main/history-worker.ts",
  ],
  outDir: "packages/desktop/dist/main",
  format: ["esm"],
  bundle: true,
  splitting: false,
  sourcemap: true,
  noExternal: [
    "@zpi-dev/agent-sdk",
    "@zpi-dev/ai",
    "@zpi-dev/agent",
    "@zpi-dev/coding-agent",
    "@zpi-dev/builtin-plugins",
    "@zpi-dev/plugin-compat",
    "typebox",
    "openai",
    "ws",
    "https-proxy-agent",
    "socks-proxy-agent",
    "yaml",
    "diff",
    "ignore",
    "bmp-js",
  ],
  external: ["electron", "node-pty", "sharp"],
  target: "node24",
  esbuildOptions(options) {
    options.conditions = [...(options.conditions ?? []), "development"];
  },
  removeNodeProtocol: false,
  banner: {
    js: 'import { createRequire } from "node:module"; const require = createRequire(import.meta.url);',
  },
};
export const preloadBuild = {
  entry: ["packages/desktop/src/preload/index.ts"],
  outDir: "packages/desktop/dist/preload",
  format: ["cjs"],
  bundle: true,
  splitting: false,
  sourcemap: true,
  external: ["electron"],
  outExtension: () => ({ js: ".cjs" }),
  target: "node24",
  removeNodeProtocol: false,
};