跳到主要内容

部署元宇宙

将元宇宙桌面部署到生产环境。

本地构建

# 构建生产版本
npm run build

# 打包 Electron 应用
npm run package:win # Windows
npm run package:mac # macOS
npm run package:linux # Linux

配置生产环境

// packages/main/src/config.ts

export const config = {
isDev: process.env.NODE_ENV !== 'production',
dbPath: process.env.DB_PATH || path.join(app.getPath('userData'), 'opentree.db'),
apiPort: 3210,
metaversePort: 5174,
autoUpdate: true,
telemetry: false,
}

自启动配置

import { app } from 'electron'
import AutoLaunch from 'auto-launch'

const launcher = new AutoLaunch({ name: 'OpenTree' })

if (config.autoStart) {
launcher.enable()
}

自动更新

import { autoUpdater } from 'electron-updater'

autoUpdater.checkForUpdatesAndNotify()

autoUpdater.on('update-available', () => {
// 通知用户有新版本
})

autoUpdater.on('update-downloaded', () => {
// 提示用户重启安装
})

数据备份

// 定期备份
import { schedule } from 'node-cron'
import { copyFileSync } from 'fs'

schedule('0 3 * * *', () => {
const backupPath = path.join(backupDir, `opentree-${Date.now()}.db`)
copyFileSync(config.dbPath, backupPath)
// 清理 7 天前的备份
})