electron.build.js 1.4 KB

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