只需编写一个命令即可从另一个目录运行多个 npm 脚本

只需编写一个命令即可从另一个目录运行多个 npm 脚本

我有一个包含前端和后端文件夹的应用程序。结构如下。

application
├── frontend
│   └── src 
│   └── build
│   └── package.json
└── backend
    └── src
    └── build
    └── package.json

前端是默认create-react-app应用程序。后端nodejs也有自己的package.json文件。

每次我需要运行应用程序时,我都会运行两个命令。

npm start -> for frontend

npm run dev -> for backend

我想知道是否可以以某种方式将这两个命令组合为一个 bash 命令?

我没有任何 bash 经验,所以如果问题比较奇怪,请见谅。

操作系统:Macos

答案1

也许还有更优雅的方法,但我只是使用 链接命令&&,如果第一个命令成功,则有条件地运行第二个命令,或者;,它不关心前一个命令的结果。请参阅此 SO 线程这里。这使您可以cd在运行命令之前进入要操作的目录(请参见secondScript下面的示例)。

作为奖励(虽然与您的问题无关),我还总是npm-run-all在我的项目中安装()[https://www.npmjs.com/package/npm-run-all],并大量使用run-srun-p(按顺序运行或并行运行)来组合我的 npm 脚本。因此,您可以使用单个命令(调用另外两个命令)启动后端,然后启动前端。

示例(适用于 Mac 和 Linux,或使用 WSL 的 Windows;在 Windows 上,命令分隔符是;):

在“脚本”中:

"firstScript": "run firstScript",
"secondScript": "cd ./submodule && run secondScript"
"bothScripts": "run-s firstScript secondScript"
"

相关内容