feat(electron): separate dev/uat build targets with isolated update channels

- Add build.dev.json to override publish.url for dev environment
- Add build:dev and build:uat scripts; each sets its own feed URL
- copy-to-nas.js now accepts env argument; outputs to
  electron-update/{dev|uat}/ locally and on NAS
- docker-compose volume mounts updated to serve from env subdirs
- Remove stale artifacts from electron-update root

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wjl
2026-04-21 15:35:07 +08:00
parent 671933d960
commit 01412a0a94
6 changed files with 51 additions and 10 deletions
+7
View File
@@ -0,0 +1,7 @@
{
"publish": {
"provider": "generic",
"url": "http://192.168.1.14:7033/electron-update/",
"channel": "latest"
}
}
+28
View File
@@ -0,0 +1,28 @@
const fs = require('fs')
const path = require('path')
const type = process.argv[2] || 'patch' // patch | minor | major
const pkgPath = path.join(__dirname, '..', 'package.json')
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'))
let [major, minor, patch] = pkg.version.split('.').map(Number)
switch (type) {
case 'major':
major++
minor = 0
patch = 0
break
case 'minor':
minor++
patch = 0
break
case 'patch':
default:
patch++
break
}
pkg.version = `${major}.${minor}.${patch}`
fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n')
console.log(`[bump-version] ${type} -> ${pkg.version}`)
+4 -4
View File
@@ -1,11 +1,12 @@
const fs = require('fs')
const path = require('path')
const env = process.argv[2] || 'uat'
const srcDir = path.join(__dirname, '..', 'dist')
// 项目根目录下的 electron-update,用于 docker volume 挂载给 nginx
const localUpdateDir = path.join(__dirname, '..', '..', 'electron-update')
// 项目根目录下的 electron-update/{env},用于 docker volume 挂载给 nginx
const localUpdateDir = path.join(__dirname, '..', '..', 'electron-update', env)
// NAS 共享路径
const nasDir = '\\\\JIULUGNAS\\personal_folder\\CodeSpace\\GameGroup2\\electron-update'
const nasDir = path.join('\\\\JIULUGNAS\\personal_folder\\CodeSpace\\GameGroup2\\electron-update', env)
function ensureDir(dir) {
try {
@@ -26,7 +27,6 @@ function copyFilesTo(destDir, label) {
}
const files = fs.readdirSync(srcDir).filter((f) => {
// 只复制更新相关文件:安装包、yml、blockmap、nupkg
const ext = path.extname(f).toLowerCase()
return (
ext === '.exe' ||