You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建npm脚本:启动server时自动在client执行npm run build?

当然可行!我来给你分享几个简单靠谱的实现方案,都是日常项目里常用的:

方法1:使用concurrently包(跨平台首选)

这个工具专门用来并行执行多个命令,完美解决Windows、Linux、macOS之间的命令兼容性问题,是最推荐的方式。

  • 第一步:在server文件夹下安装依赖
npm install concurrently --save-dev
  • 第二步:修改server目录下package.json的scripts字段:
"scripts": {
  "start": "concurrently \"node server.js\" \"cd ../client && npm run build\"",
  // 注意:把`node server.js`替换成你实际的server启动命令,比如`nodemon server.js`之类的
  "start:server": "node server.js", // 可以额外加一个单独启动server的命令,方便日常调试
  "build:client": "cd ../client && npm run build" // 单独触发client构建的命令
}

这样当你在server文件夹执行npm start时,就会同时启动server服务,并且触发client文件夹的npm run build命令。

方法2:系统原生命令(适合单平台场景)

如果你只在单一操作系统下开发,可以不用额外安装包,直接用系统原生的命令实现:

  • Linux/macOS:用&让命令后台并行执行
    修改server的package.json:
    "scripts": {
      "start": "node server.js & cd ../client && npm run build"
    }
    
  • Windows:用start /B实现后台并行
    修改server的package.json:
    "scripts": {
      "start": "start /B node server.js && cd ../client && npm run build"
    }
    

不过这种方式跨平台性差,换系统就得改脚本,所以还是更推荐第一种方案。

几个注意点
  • 确认client文件夹的路径正确:比如如果你的项目结构是根目录下有server和client两个文件夹,那../client是正确的,如果路径不同,记得调整cd后的路径。
  • 如果你需要先完成client构建,再启动server(而不是同时执行),可以把并行命令改成顺序执行,比如:
    "start": "cd ../client && npm run build && node server.js"
    
    这种场景适合server依赖client构建后的静态文件的情况。

内容的提问来源于stack exchange,提问作者kimura

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:30:19