/** * Created by superzhan on 2018/3/19. * * 根据pomelo 的 servers.json 生成 pm2 启动文件 */ //服务器端 工程代码的目录 var cwd='/game-server'; //项目的运行环境 var envType= 'production'; //配置文件的输出目录 var outputFilePath = './pomeloPm2Start.json'; var masterJsonFile = require('./config/master.ts'); var serversJosnFile = require('./config/servers.ts'); //模板数据 var processConfigType = { "name" : "", "script" : "./dist/app.js", "args" : [] , "watch": false, "out_file": "./logs/app.log", "error_file": "./logs/err.log", "cwd": "", "merge_logs": true, "exec_mode": "fork_mode", }; //最后的结果数据 var resultJson={}; resultJson.apps=new Array(); var clone = function(origin) { if(!origin) { return; } var obj = {}; for(var f in origin) { obj[f] = origin[f]; } return obj; }; // var masterConfig = masterJsonFile[envType]; var serversConfig = serversJosnFile[envType]; //生成master 的配置 var pm2Master = clone( processConfigType ); pm2Master.name="master"; pm2Master.args = new Array(); pm2Master.args.push('serverType=master'); pm2Master.args.push('id='+masterConfig.id); pm2Master.args.push('host='+masterConfig.host); pm2Master.args.push('port='+masterConfig.port); pm2Master.args.push('env='+envType); pm2Master.args.push('mode=stand-alone'); pm2Master.cwd= cwd; pm2Master.out_file = './logs/'+masterConfig.id+"_app.log"; pm2Master.error_file='./logs/'+masterConfig.id+'_error.log'; resultJson.apps.push(pm2Master); //生成当个服务器的配置 for(serverType in serversConfig) { var servers = serversConfig[serverType]; for(var i=0;i