如何自动依次执行多个npm命令?

具体场景:
命令行需要依次执行a,b,c三个命令(类似yarn build这种命令),其中每个命令的执行依赖前一个命令的执行结果,即

a() → b(a执行结果) → c(b执行结果) → 结束
例如:
a命令:yarn a
b命令:yarn b --tar=[a命令结果]
c命令:yarn c --tar=[b命令结果]

当前现状是手动依次去执行这三个命令,非常容易出错,请问如何操作可以让这三个命令自动去顺序执行,每个命令自动获取前一个命令的结果?

阅读 2.7k
4 个回答
"scripts": {
    "start": "yarn run commandA && yarn run commandB && yarn run commandC"
}

执行yarn run start就会依次执行abc

&& 不就可以了嘛? "build": "tsc && vite build && node build-dist-zip.js",

{
  "scripts": {
    "a": "your-build-command",
    "b": "your-test-command",
    "c": "your-deploy-command",
    "all": "npm run a && npm run b && npm run c"
  }
}

最后npm run all

谢邀,可以用shell脚本实现

#!/bin/bash

# 执行a命令
yarn a

# 获取a命令的执行结果,并传递给b命令
resultA=$(yarn a)
yarn b --tar="$resultA"

# 获取b命令的执行结果,并传递给c命令
resultB=$(yarn b)
yarn c --tar="$resultB"

保存脚本文件后,通过在命令行执行bash your-script.sh来运行脚本就可以了,另外看到了上面某些回答提到了用nodejs的办法,建议是在执行时请确保您已经安装了相应的依赖,免得报错,通常来说环境配置也很重要。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏