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

如何动态构建zx命令的参数?

解决zx脚本中动态构建eas build命令参数的问题

问题原因分析

  • 第一种写法错误:把拼接后的整串参数作为单个变量传入时,zx会自动给这个变量加引号,导致bash把eas build --platform ...整个当成一个命令去查找,自然找不到对应命令。
  • 第二种写法错误:将--platform ios这类带空格的参数组合成数组的单个元素,zx会把它作为一个完整参数传递给eas,但eas需要的是--platform和ios两个独立参数,因此识别失败。

正确写法

要把每个参数(包括选项和对应的值)拆分成数组的独立元素,让zx能正确解析每个参数:

const args = [];
if (local) {
  args.push('--local'); // 无值的选项单独作为数组元素
}
if (platform) {
  args.push('--platform', platform); // 选项和对应的值分成两个独立元素
}
if (profile) {
  args.push('--profile', profile); // 同理拆分选项与值
}

// 执行命令
await $`eas build ${args}`;

原理说明

zx的数组参数特性要求每个命令参数(选项、值)都作为数组的独立项,这样zx会自动为每个参数正确添加引号并传递给bash,彻底避免参数解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 10:08:17