1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
| "use strict"
const builder = require("electron-builder") const Platform = builder.Platform
const options = { protocols: { name: "Deeplink Example", schemes: [ "deeplink" ] },
compression: "normal", removePackageScripts: true,
afterSign: async (context) => { if (!isDebug && context.electronPlatformName === "darwin") { await notarizeMac(context) } }, artifactBuildStarted: (context) => { identifyLinuxPackage(context) }, afterAllArtifactBuild: (buildResult) => { return stampArtifacts(buildResult) }, beforeBuild: async (context) => { const { appDir, electronVersion, arch } = context await electronRebuild.rebuild({ buildPath: appDir, electronVersion, arch }) return false }, nodeGypRebuild: false, buildDependenciesFromSource: false,
directories: { output: "dist/artifacts/local", buildResources: "installer/resources" }, files: [ "out" ], extraFiles: [ { from: "build/Release", to: nodeAddonDir, filter: "*.node" } ],
win: { target: 'nsis' }, nsis: { deleteAppDataOnUninstall: true, include: "installer/win/nsis-installer.nsh" },
mac: { target: 'dmg', hardenedRuntime: true, gatekeeperAssess: true, extendInfo: { NSAppleEventsUsageDescription: 'Let me use Apple Events.', NSCameraUsageDescription: 'Let me use the camera.', NSScreenCaptureDescription: 'Let me take screenshots.', } }, dmg: { background: "installer/mac/dmg-background.png", iconSize: 100, contents: [ { x: 255, y: 85, type: "file" }, { x: 253, y: 325, type: "link", path: "/Applications" } ], window: { width: 500, height: 500 } },
linux: { desktop: { StartupNotify: "false", Encoding: "UTF-8", MimeType: "x-scheme-handler/deeplink" }, target: ["AppImage", "rpm", "deb"] }, deb: { priority: "optional", afterInstall:"installer/linux/after-install.tpl", }, rpm: { fpm: ["--before-install", "installer/linux/before-install.tpl"], afterInstall:"installer/linux/after-install.tpl", } };
builder.build({ targets: Platform.MAC.createTarget(), config: options }) .then((result) => { console.log(JSON.stringify(result)) }) .catch((error) => { console.error(error) })
|