Skip to content
On this page

electron-builder

一个用于构建和打包 Electron 应用程序的完整解决方案

安装

bash
pnpm add -D electron-builder

基础配置

package.json 中配置:

json
{
  "build": {
    "appId": "com.example.app",
    "productName": "MyApp",
    "directories": {
      "output": "dist"
    },
    "win": {
      "target": ["nsis"],
      "icon": "build/icon.ico"
    },
    "mac": {
      "target": ["dmg"],
      "icon": "build/icon.icns"
    },
    "linux": {
      "target": ["AppImage"],
      "icon": "build/icon.png"
    }
  },
  "scripts": {
    "build": "electron-builder",
    "build:win": "electron-builder --win",
    "build:mac": "electron-builder --mac",
    "build:linux": "electron-builder --linux"
  }
}

使用示例

基本打包

bash
# 打包当前平台
pnpm run build

# 打包指定平台
pnpm run build:win
pnpm run build:mac
pnpm run build:linux

自动更新配置

json
{
  "build": {
    "publish": [
      {
        "provider": "github",
        "owner": "your-username",
        "repo": "your-repo"
      }
    ]
  }
}

高级配置

json
{
  "build": {
    "appId": "com.example.app",
    "productName": "MyApp",
    "copyright": "Copyright © 2023",
    "asar": true,
    "compression": "maximum",
    "files": ["dist/**/*", "package.json"],
    "directories": {
      "output": "release/${version}",
      "buildResources": "build"
    },
    "win": {
      "target": [
        {
          "target": "nsis",
          "arch": ["x64", "ia32"]
        }
      ],
      "icon": "build/icon.ico",
      "artifactName": "${productName}-Setup-${version}.${ext}",
      "publisherName": "Your Company Name"
    },
    "nsis": {
      "oneClick": false,
      "allowToChangeInstallationDirectory": true,
      "createDesktopShortcut": true,
      "createStartMenuShortcut": true,
      "shortcutName": "${productName}"
    },
    "mac": {
      "category": "public.app-category.developer-tools",
      "target": ["dmg", "zip"],
      "icon": "build/icon.icns",
      "hardenedRuntime": true,
      "gatekeeperAssess": false
    },
    "linux": {
      "target": ["AppImage", "deb", "rpm"],
      "icon": "build/icons",
      "category": "Development"
    }
  }
}

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命