| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // https://www.electron.build/tutorials/two-package-structure
- const fs = require('fs')
- const path = require('path')
- const axios = require('axios')
- const { exec } = require('child_process')
- const { build } = require('electron-builder')
- const convertPath = (dir) => path.resolve(__dirname, dir)
- const outputDir = convertPath('dist_electron') // 打包输出目录
- const fileContents = fs.readFileSync(convertPath('dist/config/appconfig.json'), 'utf-8')
- const appConfig = JSON.parse(fileContents)
- const isBeta = process.argv.includes('demo') // 是否测试版
- console.log(isBeta)
- // 打包之前清空目录
- exec('rd/s/q ' + outputDir)
- // 打包自动修改版本号
- const pkgContents = fs.readFileSync(convertPath('package.json'), 'utf-8')
- const pkg = JSON.parse(pkgContents)
- pkg.name = isBeta ? 'trading-beta' : 'trading'
- pkg.version = appConfig.version
- fs.writeFileSync(convertPath('package.json'), JSON.stringify(pkg, null, 2))
- axios.get(appConfig.apiUrl).then((res) => {
- const data = res.data.data
- console.log(data)
- // https://www.electron.build/configuration/configuration
- const config = {
- appId: (appConfig.appId ?? 'com.electron.app') + (isBeta ? '_beta' : ''),
- productName: appConfig.appName + (isBeta ? '模拟盘' : ''),
- directories: {
- output: outputDir
- },
- files: [
- 'dist',
- 'main.js',
- ],
- nsis: {
- //include: './installer.nsh', // 自定义默认安装路径
- oneClick: false,
- allowToChangeInstallationDirectory: true
- },
- win: {
- icon: convertPath('dist/favicon.ico'),
- target: [
- 'nsis'
- ]
- },
- // 应用更新服务器地址,配置了 publish 才会生成 latest.yml 文件,和 .exe 文件一起放到该服务器地址下
- publish: [
- {
- provider: 'generic',
- url: data.pcUpdateUrl ?? ''
- }
- ]
- }
- build({
- config
- })
- }).catch((err) => {
- console.error(err)
- })
|