链接 package.json 脚本以启动 Express 服务器和 Vue 应用程序

Posted

技术标签:

【中文标题】链接 package.json 脚本以启动 Express 服务器和 Vue 应用程序【英文标题】:Chaining package.json scripts to start Express server and Vue app 【发布时间】:2019-12-23 19:14:30 【问题描述】:

我已经使用 Vue.js 和 express.js 构建了一个应用程序。目前我必须打开两个终端窗口并在一个窗口中运行npm run serve,在另一个窗口中运行npm start。我想在同一终端中构建 Vue.js 应用程序后让服务器运行。我在这个article 上读到,我可以通过将两个package.json 脚本链接在一起来运行这两个脚本,但是对于我的生活来说,我无法弄清楚如何。我的项目结构如下:

├── project
├── _frontend
|   ├── package.json
├── backend
|   ├── package.json

我尝试了以下方法:

1st try - "serve": "vue-cli-service serve && (cd ../server && npm start)"
2nd try - "serve": "vue-cli-service serve && (cd ../server && npm run start)"
3rd try - "serve": "vue-cli-service serve && (cd ../server) && npm start"

Vue.js 应用程序构建和运行正常,但服务器没有启动。我也尝试在服务器package.json 上执行相反的操作,服务器启动但应用程序未构建。这是由于文件夹设置而我无法完成的事情还是我做错了什么?

【问题讨论】:

***.com/questions/30950032/…的可能重复 【参考方案1】:

&& 串行执行命令。 vue-cli-service serve && cd ../server && npm start 不会按预期工作,因为脚本在服务器关闭之前停止在 vue-cli-service serve

对于跨平台脚本,可以使用concurrently或者其他类似的包来并行执行命令:

"serve": "vue-cli-service serve",
"start": "concurrently \"npm run serve\" \"cd ../server && npm start\""

【讨论】:

这来得正是时候。太好了,谢谢!

以上是关于链接 package.json 脚本以启动 Express 服务器和 Vue 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

`package.json` 顺序启动脚本只执行其中一个脚本

我应该在 NPM package.json 中将我的“启动”脚本设置为啥?

package.json 启动脚本,babel-node:在 heroku deploy 上找不到

从命令行运行 `node index.js` 可以,但是当我在 package.json 中使用启动脚本时,我得到一个 EADDRINUSE /usr/bin/local/node 错误

Bash 脚本:如何用 sed 替换 package.json 中的文本

从 Package.json 脚本运行 BrowserSync 时出错