build.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. const builder = require('electron-builder')
  2. const Platform = builder.Platform
  3. function getCurrentPlatform(){
  4. switch(process.platform){
  5. case 'win32':
  6. return Platform.WINDOWS
  7. case 'darwin':
  8. return Platform.MAC
  9. case 'linux':
  10. return Platform.linux
  11. default:
  12. console.error('Cannot resolve current platform!')
  13. return undefined
  14. }
  15. }
  16. builder.build({
  17. targets: (process.argv[2] != null && Platform[process.argv[2]] != null ? Platform[process.argv[2]] : getCurrentPlatform()).createTarget(),
  18. config: {
  19. appId: 'electronlauncher',
  20. productName: 'Electron Launcher',
  21. artifactName: '${productName}.${ext}',
  22. copyright: 'Copyright © 2018-2019 Daniel Scalzi',
  23. directories: {
  24. buildResources: 'build',
  25. output: 'dist'
  26. },
  27. win: {
  28. target: [
  29. {
  30. target: 'nsis',
  31. arch: 'x64'
  32. }
  33. ],
  34. icon: 'build/icon.ico'
  35. },
  36. nsis: {
  37. oneClick: false,
  38. perMachine: true,
  39. allowElevation: true,
  40. installerIcon: 'build/icon.ico',
  41. uninstallerIcon: 'build/icon.ico',
  42. allowToChangeInstallationDirectory: true
  43. },
  44. mac: {
  45. target: 'dmg',
  46. category: 'public.app-category.games',
  47. icon: 'build/icon.icns'
  48. },
  49. linux: {
  50. target: 'AppImage',
  51. maintainer: 'Daniel Scalzi',
  52. vendor: 'Daniel Scalzi',
  53. synopsis: 'Modded Minecraft Launcher',
  54. description: 'Custom launcher which allows users to join modded servers. All mods, configurations, and updates are handled automatically.',
  55. category: 'Game'
  56. },
  57. compression: 'maximum',
  58. files: [
  59. '!{dist,.gitignore,.vscode,docs,dev-app-update.yml,.travis.yml,.nvmrc,.eslintrc.json,build.js}'
  60. ],
  61. extraResources: [
  62. 'libraries'
  63. ],
  64. asar: true
  65. }
  66. }).then(() => {
  67. console.log('Build complete!')
  68. }).catch(err => {
  69. console.error('Error during build!', err)
  70. })