我有一个包含前端和后端文件夹的应用程序。结构如下。
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-s
和run-p
(按顺序运行或并行运行)来组合我的 npm 脚本。因此,您可以使用单个命令(调用另外两个命令)启动后端,然后启动前端。
示例(适用于 Mac 和 Linux,或使用 WSL 的 Windows;在 Windows 上,命令分隔符是;
):
在“脚本”中:
"firstScript": "run firstScript",
"secondScript": "cd ./submodule && run secondScript"
"bothScripts": "run-s firstScript secondScript"
"