HeliosLauncher/build.js
Daniel Scalzi b54b206b9a
Use programmatic API from Electron-Builder.
It seems that the package-json based configuration is deprecated.
See https://github.com/electron-userland/electron-builder/issues/3751
2019-04-23 17:35:07 -04:00

72 lines
2.2 KiB
JavaScript

const builder = require('electron-builder')
const Platform = builder.Platform
function getCurrentPlatform(){
switch(process.platform){
case 'win32':
return Platform.WINDOWS
case 'darwin':
return Platform.MAC
case 'linux':
return Platform.linux
default:
console.error('Cannot resolve current platform!')
return undefined
}
}
builder.build({
targets: (process.argv[2] != null && Platform[process.argv[2]] != null ? Platform[process.argv[2]] : getCurrentPlatform()).createTarget(),
config: {
appId: 'electronlauncher',
productName: 'Electron Launcher',
artifactName: '${productName}.${ext}',
copyright: 'Copyright © 2018-2019 Daniel Scalzi',
directories: {
buildResources: 'build',
output: 'dist'
},
win: {
target: [
{
target: 'nsis',
arch: 'x64'
}
],
icon: 'build/icon.ico'
},
nsis: {
oneClick: false,
perMachine: true,
allowElevation: true,
installerIcon: 'build/icon.ico',
uninstallerIcon: 'build/icon.ico',
allowToChangeInstallationDirectory: true
},
mac: {
target: 'dmg',
category: 'public.app-category.games',
icon: 'build/icon.icns'
},
linux: {
target: 'AppImage',
maintainer: 'Daniel Scalzi',
vendor: 'Daniel Scalzi',
synopsis: 'Modded Minecraft Launcher',
description: 'Custom launcher which allows users to join modded servers. All mods, configurations, and updates are handled automatically.',
category: 'Game'
},
compression: 'maximum',
files: [
'!{dist,.gitignore,.vscode,docs,dev-app-update.yml,.travis.yml,.nvmrc,.eslintrc.json,build.js}'
],
extraResources: [
'libraries'
],
asar: true
}
}).then(() => {
console.log('Build complete!')
}).catch(err => {
console.error('Error during build!', err)
})