const fs = require("fs"); const obj = require("../config/app_config"); // 获取当前工作目录路径 const currentDirPath = process.cwd(); // 定义需要更改的 package.json 文件路径 const packageJsonFilePath = `${currentDirPath}/package.json`; const installerFilePath = `${currentDirPath}/installer.nsh`; /*function setEnvior() {}*/ let Factory = (function() { return { mains: function() { // 读取原始的 package.json 内容 let packageData; let y; try { const str = String(fs.readFileSync(installerFilePath)); y = str.replace(/urlHKLM/g, obj.installUrl); const rawData = fs.readFileSync(packageJsonFilePath); packageData = JSON.parse(rawData); } catch (error) { console.log(`无法读取 ${packageJsonFilePath}`); return; } // 根据自定义逻辑修改 package.json 中的 name 字段(这里示意性地将其设置为 "new_app") for (const objKey in obj) { if (objKey.indexOf("_") > -1) { let keyArr = []; keyArr = objKey.split("_"); //[win,icon]=>["win"]["icon"] let str = '["' + keyArr.join('"]["') + '"]'; console.log(str); try { eval(`packageData${str} = obj[objKey]`); } catch (e) {} } else { if (packageData.hasOwnProperty(objKey)) { packageData[objKey] = obj[objKey]; } } } console.log(packageData); // 写入修改后的 package.json 数据 fs.writeFileSync(packageJsonFilePath, JSON.stringify(packageData)); fs.writeFileSync(installerFilePath, y); }, setEnvior: function() { console.log("*********************", obj.head); // process.env.Head = obj.head; return obj.head; } }; })(); module.exports = Factory;