场景:一键批量运行前端项目

69 阅读2分钟

一键批量运行前端项目

背景

工作中每次都需要给不同项目运行服务有给测试的、有给后端的、还有自己的稳定版分支,开发分支,这些都需要启动服务,然而每一次进行重复的操作然我觉得这正是可以使用工具偷懒的;所以我突发奇想, 写了一个 js 文件,如下:

const { exec } = require("child_process")
const pathObj = {
  670: "C:\\Users\\adminpvc\\Documents\\plm6-OA",
  669: "C:\\Users\\adminpvc\\Desktop\\corporation\\plm6-finance-basic",
  668: "C:\\Users\\adminpvc\\Desktop\\corporation\\plm6-finance-basic-dispose",
  671: "C:\\Users\\adminpvc\\Documents\\plm6-next",
}

Object.keys(pathObj).forEach((key) => {
  exec(
    `yarn dev --port ${key}`,
    { cwd: pathObj[key] },
    (error, stdout, stderr) => {
      if (error) {
        console.error(`执行命令时出错: ${error.message}`)
        return
      }
      if (stderr) {
        console.error(`命令标准错误输出: ${stderr}`)
        return
      }
      console.log(`命令标准输出: ${stdout}`)
    },
  )
})

注意:

这里 pathObj 的键和值修改成自己想设置的端口和项目文件路径即可。

但是现在又有一个问题,我该怎么双击这个文件执行呢,难道还得手动在命令行用 node 去执行一下这个文件吗?

这可不行,于是我就搜索看有没有什么工具能够让 js 文件直接在 windows 桌面双击运行,于是我找到一个不错的第三方包: pkg

简单说明一下,它的作用就是可以将指定文件打包成目标系统可直接执行的文件


全局安装

npm install -g pkg

生成 package.json

npm init -y

接着再去想要打包的文件的路径下,执行如下命令

pkg ./<你的文件>.js --targets win

就会再当前目录下生成一个 exe 程序

test.png

当然也可以去自定程序的图标,这就需要去 package.json 里面去修改了,例如:

{
  "name": "myapp",
  "version": "1.0.0",
  "pkg": {
    "targets": ["node14-win-x64"],
    "assets": [
      "assets/**/*" // 包含 assets 文件夹中的所有文件
    ],
    "icon": "icon.ico" // 指定图标文件
  }
}

这样就大功告成了。