Commit e34286ca by linjinhong

fix:添加命令行配置打包

parent a487f84a
{ {
"apiApiHost": "http://172.16.19.100:8060/api", "test": {
"fileApiUrl": "http://172.16.19.100:8060/upload/factory", "apiApiHost": "http://172.16.19.100:8060/api",
"visionUrl": "http://console.jomalls.com", "fileApiUrl": "http://172.16.19.100:8060/upload/factory",
"configPath": "D:\\work\\electron-printer\\config\\env.json" "visionUrl": "http://console.jomalls.com",
"configPath": "D:\\work\\electron-printer\\config\\env.json"
},
"prod": {
"apiApiHost": "https://factory.jomalls.com/api",
"fileApiUrl": "https://factory.jomalls.com/upload/factory",
"visionUrl": "https://console.jomalls.com",
"configPath": "D:\\work\\electron-printer\\config\\env.json"
}
} }
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
"serve": "vue-cli-service serve", "serve": "vue-cli-service serve",
"build": "vue-cli-service build", "build": "vue-cli-service build",
"lint": "vue-cli-service lint", "lint": "vue-cli-service lint",
"electron:build:test": "set VUE_APP_ENV=test&& vue-cli-service electron:build",
"electron:build:prod": "set VUE_APP_ENV=prod&& vue-cli-service electron:build",
"electron:build": "vue-cli-service electron:build", "electron:build": "vue-cli-service electron:build",
"electron:serve": "nodemon --watch src/server --exec vue-cli-service electron:serve", "electron:serve": "nodemon --watch src/server --exec vue-cli-service electron:serve",
"postinstall": "electron-builder install-app-deps", "postinstall": "electron-builder install-app-deps",
......
...@@ -243,8 +243,8 @@ async function createWindow() { ...@@ -243,8 +243,8 @@ async function createWindow() {
} }
try { try {
let configObj = JSON.parse(data); let configObj = JSON.parse(data);
configObj.apiApiHost = `http://${newDomain}/api`; configObj.apiApiHost = `https://${newDomain}/api`;
configObj.fileApiUrl = `http://${newDomain}/upload/factory`; configObj.fileApiUrl = `https://${newDomain}/upload/factory`;
configObj.configPath = configPath; configObj.configPath = configPath;
const newData = JSON.stringify(configObj); // 使用2个空格缩进 const newData = JSON.stringify(configObj); // 使用2个空格缩进
......
...@@ -42,8 +42,16 @@ function getCurrentDesktopDevice() { ...@@ -42,8 +42,16 @@ function getCurrentDesktopDevice() {
return version; return version;
} }
/**
* @function readEnv
* @description 【核心方法】读取项目配置文件,自动区分测试/生产环境
* 作用:1. 动态获取配置文件路径(开发/打包环境自动适配)
* 2. 读取env.json配置文件
* 3. 根据打包命令切换测试/生产环境接口地址
* 4. 初始化全局接口变量,供项目全局使用
* 5. 配置加载失败时自动兜底默认配置
*/
function readEnv() { function readEnv() {
// 不需要async了
let exePath, configPath; let exePath, configPath;
try { try {
if (process.env.NODE_ENV === "development") { if (process.env.NODE_ENV === "development") {
...@@ -52,29 +60,30 @@ function readEnv() { ...@@ -52,29 +60,30 @@ function readEnv() {
exePath = path.dirname(app.getPath("exe")).replace(/\\/g, "/"); exePath = path.dirname(app.getPath("exe")).replace(/\\/g, "/");
configPath = `${exePath}/config/env.json`; configPath = `${exePath}/config/env.json`;
} }
console.log("configPath", configPath);
// ✅ 改用同步读取,确保配置加载完成
const data = fs.readFileSync(configPath, "utf-8"); const data = fs.readFileSync(configPath, "utf-8");
const config = JSON.parse(data); const allConfig = JSON.parse(data);
const isTest = process.env.VUE_APP_ENV === "test";
const config = isTest ? allConfig.test : allConfig.prod;
config.configPath = configPath; config.configPath = configPath;
setApi(config); // 如果setApi是异步的,这里需要改成同步,或用await(但readEnv要加async) setApi(config);
console.log(53, config);
// 此时赋值一定完成
fileEnv = config.fileApiUrl; fileEnv = config.fileApiUrl;
env = config.apiApiHost; env = config.apiApiHost;
visionUrl = config.visionUrl; visionUrl = config.visionUrl;
console.log("配置加载完成:", { fileEnv, env, visionUrl }); console.log("配置加载完成:", { fileEnv, env, visionUrl });
} catch (err) { } catch (err) {
console.error("读取配置文件失败:", err); console.error("读取配置文件失败:", err);
// 配置加载失败时,可设置默认值或抛出错误
fileEnv = "https://factory.jomalls.com/upload/factory"; fileEnv = "https://factory.jomalls.com/upload/factory";
env = "https://factory.jomalls.com/api"; env = "https://factory.jomalls.com/api";
visionUrl = "https://console.jomalls.com"; visionUrl = "https://console.jomalls.com";
configPath = "D:\\work\\electron-printer\\config\\env.json";
throw new Error(`配置文件加载失败:${err.message}`); throw new Error(`配置文件加载失败:${err.message}`);
} }
} }
readEnv(); readEnv();
export default { export default {
saveImgByUrl: async (req, res) => { saveImgByUrl: async (req, res) => {
......
...@@ -441,10 +441,7 @@ module.exports = { ...@@ -441,10 +441,7 @@ module.exports = {
// 步骤5:按后缀降序排序,取最新一条(只删这一条) // 步骤5:按后缀降序排序,取最新一条(只删这一条)
qualifiedOrders.sort((a, b) => b.suffix - a.suffix); qualifiedOrders.sort((a, b) => b.suffix - a.suffix);
const latestQualifiedItem = qualifiedOrders[0]; const latestQualifiedItem = qualifiedOrders[0];
const { const { cacheKey: toDeleteCacheKey } = latestQualifiedItem;
cacheKey: toDeleteCacheKey,
order: toDeleteOrder,
} = latestQualifiedItem;
// 步骤6:【核心修复】用「唯一cacheKey」精准匹配,只删除目标订单(避免误伤) // 步骤6:【核心修复】用「唯一cacheKey」精准匹配,只删除目标订单(避免误伤)
const originalOrderArray = store.get("orderInfo") || []; const originalOrderArray = store.get("orderInfo") || [];
......
...@@ -89,7 +89,6 @@ module.exports = { ...@@ -89,7 +89,6 @@ module.exports = {
warnings: true, warnings: true,
errors: true, errors: true,
}, },
before: (app) => {},
}, },
/** /**
* 第三方插件配置 * 第三方插件配置
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment