const fs = require('fs'); const fse = require('fs-extra'); const path = require('path') const inquirer = require('inquirer'); const child_process = require('child_process'); const utils = require('./utils'); const config = require('../package.json') const argv = process.argv; const env = require('dotenv').config({ path: './.env' }) const electronDir = path.resolve(__dirname, "public"); const nativeCachePath = path.resolve(__dirname, ".native"); const devloadCachePath = path.resolve(__dirname, ".devload"); const packageFile = path.resolve(__dirname, "package.json"); const packageBakFile = path.resolve(__dirname, "package-bak.json"); const platform = ["build-mac", "build-mac-arm", "build-win"]; // 克隆 Drawio function cloneDrawio(systemInfo) { child_process.spawnSync("git", ["submodule", "update", "--quiet", "--init", "--depth=1"], {stdio: "inherit"}); const drawioSrcDir = path.resolve(__dirname, "../resources/drawio/src/main/webapp"); const drawioCoverDir = path.resolve(__dirname, "../docker/drawio/webapp"); const drawioDestDir = path.resolve(electronDir, "drawio"); fse.copySync(drawioSrcDir, drawioDestDir) fse.copySync(drawioCoverDir, drawioDestDir) // const preConfigFile = path.resolve(drawioDestDir, "js/PreConfig.js"); if (!fse.existsSync(preConfigFile)) { console.log("clone drawio error!"); process.exit() } let preConfigString = fs.readFileSync(preConfigFile, 'utf8'); preConfigString += "\nwindow.systemInfo = " + JSON.stringify(systemInfo) + ";\n"; preConfigString += fs.readFileSync(path.resolve(__dirname, "drawio.js"), 'utf8'); fs.writeFileSync(preConfigFile, preConfigString, 'utf8'); } // 生成配置、编译应用 function startBuild(data, publish) { // information console.log("Name: " + data.name); console.log("AppId: " + data.id); console.log("Version: " + config.version); let systemInfo = { title: data.name, version: config.version, origin: "./", apiUrl: utils.formatUrl(data.url) + "api/", } // drawio cloneDrawio(systemInfo) // config.js fs.writeFileSync(electronDir + "/config.js", "window.systemInfo = " + JSON.stringify(systemInfo), 'utf8'); fs.writeFileSync(nativeCachePath, utils.formatUrl(data.url)); fs.writeFileSync(devloadCachePath, "", 'utf8'); // index.html let indexFile = path.resolve(electronDir, "index.html"); let indexString = fs.readFileSync(indexFile, 'utf8'); indexString = indexString.replace(/