mcpField
E
electrobun-config

electrobun-config

github.com/dexploarer开发511 次安装34 周前更新
代码仓库

关于 electrobun-config

electrobun-config 是 electrobun.config.ts 的参考指南,供配置 Electrobun 应用的开发者使用。它按应用标识、构建和发布等任务介绍常用配置字段。

主要功能

  1. 01应用名称、标识符和版本配置
  2. 02渲染器视图与 GPU 设置
  3. 03CEF 打包及默认渲染器设置
  4. 04发布 URL 与补丁生成设置
  5. 05代码签名、静态资源和深层链接配置

适用场景

  1. 01为新应用设置身份信息
  2. 02添加渲染器视图或启用 GPU
  3. 03配置发布及补丁生成
  4. 04设置签名、资源复制或 URL scheme

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dexploarer/plugin-electrobun-dev --skill electrobun-config

安装后在 Claude Code 中输入/electrobun-config确认已加载。

详细介绍

electrobun.config.ts — 完整参考

import type { ElectrobunConfig } from "electrobun";

export default {

  // ── App identity ────────────────────────────────────────────────────────
  app: {
    name: "MyApp",                    // Display name (default: "MyApp")
    identifier: "com.example.myapp", // Reverse DNS bundle ID (REQUIRED, must be unique)
    version: "0.1.0",                // Semver — bump for each release
    description: "My app",           // Used in Linux .desktop file
    urlSchemes: ["myapp"],           // Deep link schemes: myapp:// (macOS only currently)
  },

  // ── Build ────────────────────────────────────────────────────────────────
  build: {

    // Output directories
    buildFolder: "build",            // Where built apps go (default: "build")
    artifactFolder: "artifacts",     // Where release artifacts go (default: "artifacts")
    targets: "current",              // Target platforms; "current" = host platform (default: "current")

    // Bun main process bundle
    bun: {
      entrypoint: "src/bun/index.ts",  // Main process entry (default: "src/bun/index.ts")
      minify: false,                   // Any Bun.build() options work here
      sourcemap: "inline",
      define: { "process.env.NODE_ENV": '"development"' },
    },

    // Renderer (browser-side) bundles — one per BrowserView with a TS entrypoint
    views: {
      mainview: { entrypoint: "src/mainview/index.ts" },
      sidebar:  { entrypoint: "src/sidebar/index.ts" },
      // Each key becomes a URL scheme: mainview://index.html
    },

    // Static file copies — key: source path, value: dest path in bundle Resources
    copy: {
      "assets/": "assets/",
      "data/schema.sql": "data/schema.sql",
    },

    // ASAR archive (packs Resources into a single file — reduces file count)
    useAsar: false,                  // default: false
    asarUnpack: ["*.node", "*.dll", "*.dylib", "*.so"],  // default — native libs always unpacked

    // Version overrides (pin runtime versions — test thoroughly before use)
    cefVersion: undefined,           // e.g. "CEF_128+chromium-128.0.6613.84"
    wgpuVersion: undefined,          // e.g. "0.2.3"
    bunVersion: undefined,           // e.g. "1.4.2"

    // Locale trimming — reduces CEF bundle size on Linux/Windows
    locales: "*",                    // "*" = all locales; ["en", "de"] = only those

    // Watch mode extras
    watch: [],                       // Additional paths to watch in `dev --watch`
    watchIgnore: [],                 // Glob patterns to ignore in watch mode

    // ── Platform: macOS ───────────────────────────────────────────────────
    mac: {
      bundleCEF: false,              // Use CEF instead of WKWebView (adds ~120MB)
      bundleWGPU: false,             // Bundle Dawn for GpuWindow (adds ~8MB)
      defaultRenderer: "native",    // "native" (WKWebView) | "cef" (Chromium)
      codesign: false,               // Enable codesign (requires ELECTROBUN_DEVELOPER_ID)
      notarize: false,               // Enable notarization (requires Apple creds env vars)
      icons: "icon.iconset",         // Path to .iconset folder (must contain icon_1024x1024.png)
      entitlements: {                // Hardened runtime entitlements
        "com.apple.security.cs.allow-jit": true,
        "com.apple.security.cs.allow-unsigned-executable-memory": true,
      },
      chromiumFlags: {               // CEF Chromium flags (CEF only)
        "disable-web-security": true,
        "allow-running-insecure-content": true,
      },
    },

    // ── Platform: Windows ─────────────────────────────────────────────────
    win: {
      bundleCEF: false,
      bundleWGPU: false,
      defaultRenderer: "native",    // "native" (WebView2) | "cef"
      icon: "assets/icon.ico",      // .ico file path
      chromiumFlags: {},
    },

    // ── Platform: Linux ───────────────────────────────────────────────────
    linux: {
      bundleCEF: false,
      bundleWGPU: false,
      defaultRenderer: "native",    // "native" (GTKWebKit) | "cef"
      icon: "assets/icon.png",      // .png file path
      chromiumFlags: {},
    },
  },

  // ── Runtime config ───────────────────────────────────────────────────────
  runtime: {
    exitOnLastWindowClosed: true,   // Quit app when last window closes (default: true)
    // Any additional keys are accessible via BuildConfig at runtime
    apiEndpoint: "https://api.example.com",
  },

  // ── Build lifecycle hooks ─────────────────────────────────────────────────
  scripts: {
    preBuild: "bun run scripts/pre-build.ts",   // Runs before bundling
    postBuild: "bun run scripts/post-build.ts", // Runs after bundle, before codesign
    postWrap: "echo Done wrapping",              // Runs after .app is assembled
    postPackage: "bun run scripts/upload.ts",    // Runs after DMG/installer created
  },

  // ── Release / auto-update ─────────────────────────────────────────────────
  release: {
    baseUrl: "https://cdn.example.com/releases/myapp",
    generatePatch: true,            // Generate bsdiff patch (default: true)
  },

} satisfies ElectrobunConfig;

按任务分类的常用字段

启动新项目: app.name、app.identifier、app.version

添加新的渲染器视图: build.views.<viewname>

启用 GPU 渲染: build.mac.bundleWGPU: true(所有目标平台)

启用 CEF: build.mac.bundleCEF: true、build.mac.defaultRenderer: "cef"

设置发布: release.baseUrl、release.generatePatch: true

代码签名: build.mac.codesign: true、build.mac.notarize: true,设置环境变量

添加静态资源: build.copy

深度链接: app.urlSchemes

评论

支持 Markdown