node执行批处理,并读取批处理生成的js文件(读取时清除缓存)

//jenkins部署时自动调run接口执行批处理,pm2起项目
const run = async (req, res) => {
  const { branch } = req.body
  console.log(branch)
  spawn.sync('yarn -v', [], { stdio: 'inherit' })
  spawn.sync(`run.bat ${branch}`, [], { stdio: 'inherit' })
  spawn.sync(`runChild1.bat ${branch}`, [], { stdio: 'inherit' })
  spawn.sync(`runChild2.bat ${branch}`, [], { stdio: 'inherit' })
  delete require.cache[require.resolve('../../prettylist')]
  const { prettylist } = require('../../prettylist')
  spawn.sync(`runChild3.bat`, [], { stdio: 'inherit' })
  prettylist.forEach(item => {
    spawn.sync(`runChild4.bat ${item.pid}`, [], { stdio: 'inherit' })
  })
  spawn.sync(`runChild5.bat`, [], { stdio: 'inherit' })
  delete require.cache[require.resolve('../../port')]
  const { port } = require('../../port')
  
  res.send({
    state: 1,
    data: {
      prettylist,
      port,
    },
    message: '成功'
  })
}

run.bat:

@REM 接口/api/jenkins/run执行这个批处理
echo %0 %1
set historyPath=%cd%
echo %historyPath%
cd /temp/m-node-edu/%1
call yarn -v
call yarn
@REM name会自动应用到pm2配置文件ecosystem.config.js的name字段
set tempName=%1
set name=%tempName:\=_%
set watch=false
call pm2 start ecosystem.config.js --env production
@REM 跳转到原路径
cd %historyPath%

 runChild1.bat:

@REM 接口/api/jenkins/run执行这个批处理 prettylist.txt保存pm2进程信息
pm2 prettylist > prettylist.txt

runChild2.bat:

@REM 接口/api/jenkins/run执行这个批处理 使用prettylist.txt以及其他文本生成prettylist.js,可以被js调用
echo const prettylist = > prettylist.js
type prettylist.txt >> prettylist.js
echo ; >> prettylist.js
echo module.exports = { prettylist } >> prettylist.js
echo prettylist.js done!

runChild3.bat:

@REM 接口/api/jenkins/run执行这个批处理 port.js保存pm2进程占用端口号的信息
echo const port = [ > port.js

runChild4.bat:

@REM 接口/api/jenkins/run执行这个批处理 port.js保存pm2进程占用端口号的信息
echo %0 %1
echo { pid: %1, info: ` >> port.js
netstat -ano | findstr %1 >> port.js
echo `}, >> port.js

runChild5.bat:

@REM 接口/api/jenkins/run执行这个批处理 port.js保存pm2进程占用端口号的信息
echo ]; >> port.js
echo module.exports = { port } >> port.js
echo port.js done!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐同保

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值