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

package.json合并多scripts执行报错,vue启动serve自动ftp部署的正确写法

语法错误原因

你当前的写法存在两处错误:

  • && 是串行执行运算符,必须等前一个命令执行完成并退出进程后才会运行后一个命令。而 vue-cli-service serve 是启动常驻的本地开发服务,进程会一直保持运行不会主动退出,因此后续的部署命令永远无法触发。
  • 直接写 deploy 无法被系统识别,要调用同 package.json 内定义的其他脚本,需要使用 npm run deploy(pnpm、yarn用户替换为对应包管理器的执行命令即可)。

正确实现方式

方案1:系统原生并行符(快速实现,有系统兼容性问题)

Mac/Linux 系统可直接用 & 运算符并行执行两个命令:

"scripts": {
  "deploy": "vue-cli-service ftpdeploy --genHist --diffFileOnly --ftpCfgPath /ftpdeploy/ --ftpHistPath /ftpdeploy/",
  "serve": "vue-cli-service serve & npm run deploy",
  "build": "vue-cli-service build"
}

Windows 系统不同终端对应的并行符不同,cmd 用 &,PowerShell 用 ;,不建议多端协作场景使用该方案。

方案2:跨平台并行执行(全系统兼容,推荐)

先安装跨平台脚本执行工具 npm-run-all:

npm install npm-run-all -D

修改 scripts 配置,用内置的 run-p 命令并行执行多个脚本:

"scripts": {
  "deploy": "vue-cli-service ftpdeploy --genHist --diffFileOnly --ftpCfgPath /ftpdeploy/ --ftpHistPath /ftpdeploy/",
  "start:serve": "vue-cli-service serve",
  "serve": "run-p start:serve deploy",
  "build": "vue-cli-service build"
}

如果需要确保开发服务完全启动后再执行部署,可额外安装端口监听工具 wait-on 优化逻辑:

  1. 安装依赖
npm install wait-on -D
  1. 修改配置(将示例中的8080端口替换为你实际的开发服务端口)
"scripts": {
  "deploy": "vue-cli-service ftpdeploy --genHist --diffFileOnly --ftpCfgPath /ftpdeploy/ --ftpHistPath /ftpdeploy/",
  "start:serve": "vue-cli-service serve",
  "wait-deploy": "wait-on http://localhost:8080 && npm run deploy",
  "serve": "run-p start:serve wait-deploy",
  "build": "vue-cli-service build"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:24:03