electron.build.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const fs = require('fs')
  2. const axios = require('axios')
  3. const { exec } = require('child_process')
  4. const { build } = require('electron-builder')
  5. const fileContents = fs.readFileSync('dist/config/appconfig.json', 'utf-8')
  6. const appConfig = JSON.parse(fileContents)
  7. // 打包之前清空目录
  8. exec('rd/s/q dist_electron')
  9. axios.get(appConfig.apiUrl).then((res) => {
  10. const data = res.data.data
  11. console.log(data)
  12. const config = {
  13. productName: appConfig.appName,
  14. directories: {
  15. output: 'dist_electron'
  16. },
  17. files: [
  18. 'dist',
  19. 'main.js',
  20. ],
  21. nsis: {
  22. oneClick: false,
  23. allowToChangeInstallationDirectory: true
  24. },
  25. win: {
  26. icon: 'dist/favicon.ico',
  27. target: [
  28. 'nsis'
  29. ]
  30. },
  31. // 应用更新服务器地址,配置了 publish 才会生成 latest.yml 文件,和 .exe 文件一起放到该服务器地址下
  32. publish: [
  33. {
  34. provider: 'generic',
  35. url: data.pcUpdateUrl ?? ''
  36. }
  37. ]
  38. }
  39. build({
  40. config
  41. })
  42. }).catch((err) => {
  43. console.error(err)
  44. })