黑白梦黑白梦

  • 文章
  • 专栏
  • 文章
  • 专栏
全部文章

使用 child_process 的 spawnSync 封装 shell 命令

发布于 2023-08-24约 1 分钟

Node.js 自带的 child_process中,有个spawnSync方法,启动同步的子进程,执行命令。可通过stdio: 'inherit', 设置,将相应的 stdio 流传入/传出父进程。

这样就可以对命令进行一些封装,如增加自定义的环境变量等。

如封装一个 cus-vite.js:

const { spawnSync } = require('child_process')

const args = process.argv.slice(2)

spawnSync('vite', args, {
  shell: true,
  stdio: 'inherit',
  env: {
    CUSTOM_ENV_FLAG: 'ENV1',
    ...process.env,
  },
})

在vite.config.js 中就可以读取到自定义的环境变量信息了:

console.log(process.env.CUSTOM_ENV_FLAG, 'CUSTOM_ENV_FLAG')

在 package.json 中就可以使用这个 node 脚本启动、构建:

"dev": "node cus-vite.js",
"build": "node cus-vite.js build",

通过这样的封装,可以对命令进行一定的拓展,可以针对参数再进行特定的处理,如实现不同环境配置等。

上一篇webpack 项目先引入全局 css 再引入组件入口下一篇通过 BigInt 实现大整数高精度计算,及模拟 long long 等类型的数值计算

©2015-2026 黑白梦 粤ICP备15018165号

联系: heibaimeng@foxmail.com