electron如何交叉编译

我们很多时侯需要编译到不同的平台,我们又不能一个平台弄一台计算机去编译,所以我们用交叉编译:

在electron中,我们先修改package.json,我只列出要修改的部分:

 "build:win": "npm run build && electron-builder --win",
    "build:mac": "npm run build && electron-builder --mac",
    "build:linux": "npm run build && electron-builder --linux",

    "build:winx64": "npm run build && electron-builder --win --x64",
    "build:winarm64": "npm run build && electron-builder --win --arm64",

    "build:macx64": "npm run build && electron-builder --mac --x64",
    "build:macarm64": "npm run build && electron-builder --mac --arm64",

    "build:linuxx64": "npm run build && electron-builder --linux --x64",
    "build:linuxarm64": "npm run build && electron-builder --linux --arm64"

下面我们修改electron-builder.yml

appId: com.electron.app
productName: test

directories:
  buildResources: build

files:
  - '!**/.vscode/*'
  - '!src/*'
  - '!electron.vite.config.{js,ts,mjs,cjs}'
  - '!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}'
  - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}'
asarUnpack:
  - resources/**

win:
  icon: build/icon.ico
  executableName: test
  extraResources:
    - from: resources/testrust.exe
      to: ./
    - from: resources/testdata.dll
      to: ./
    - from: resources/Microsoft.Data.SqlClient.SNI.dll
      to: ./
    - from: resources/icon.ico
      to: ./

# Place nsis at the top level instead of nesting under win
nsis:
  artifactName: '${name}-${version}-setup.${ext}'
  shortcutName: '${productName}'
  uninstallDisplayName: '${productName}'
  createDesktopShortcut: always

mac:
  icon: build/icon.icns
  entitlementsInherit: build/entitlements.mac.plist
  extraResources:
    - from: resources/testrust
      to: ./
    - from: resources/testdata.dylib
      to: ./
    - from: resources/icon.icns
      to: ./
  extendInfo:
    NSCameraUsageDescription: "Application requests access to the device's camera."
    NSMicrophoneUsageDescription: "Application requests access to the device's microphone."
    NSDocumentsFolderUsageDescription: "Application requests access to the user's Documents folder."
    NSDownloadsFolderUsageDescription: "Application requests access to the user's Downloads folder."
  notarize: false

dmg:
  artifactName: '${name}-${version}.${ext}'

linux:
  icon: build/icon.png
  extraResources:
    - from: resources/testrust
      to: ./
    - from: resources/testdata.so
      to: ./
    - from: resources/icon.png
      to: ./
  target:
    - AppImage
    - deb
  maintainer: electronjs.org
  category: Utility

appImage:
  artifactName: '${name}-${version}.${ext}'

npmRebuild: false

publish:
  provider: generic
  url: 'https://example.com/auto-updates'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值