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

如何编写自动追加固定参数的package.json脚本以自定义yarn extract命令

实现方案

原理说明

npm/yarn 执行 scripts 脚本时,默认会把用户额外传入的参数追加到脚本定义的命令末尾。如果直接把固定参数写在脚本定义的尾部,用户传入的参数会跑到固定参数之后,不符合需求。因此需要先接收用户参数,再拼接固定参数到最后。

方案1:类Unix环境(macOS、Linux、WSL)快速配置

直接修改 package.json 中的 scripts 配置即可,使用 shell 内置变量接收用户传入的所有参数:

{
  "scripts": {
    "extract": "formatjs extract $* --id-interpolation-pattern '[sha512:contenthash:base64:6]'"
  }
}

配置完成后执行 yarn extract 'src/**/*.tsx' --out-file lang/en.json,实际运行的命令就是需要的完整格式,固定参数会自动拼接在所有用户参数的末尾。

方案2:全平台兼容方案(支持Windows)

如果需要兼容 Windows 的 cmd/PowerShell 环境,shell 变量不生效,可以通过一个极简 Node 脚本实现参数拼接:

  1. 项目根目录新建 scripts/extract.js 文件,内容如下:
const { spawnSync } = require('child_process')
// 接收用户传入的所有参数
const userArgs = process.argv.slice(2)
// 定义需要追加的固定参数
const fixedArgs = ['--id-interpolation-pattern', '[sha512:contenthash:base64:6]']

// 拼接参数执行命令
spawnSync('npx', ['formatjs', 'extract', ...userArgs, ...fixedArgs], {
  stdio: 'inherit',
  shell: true
})
  1. 修改 package.json 中的 scripts 配置:
{
  "scripts": {
    "extract": "node scripts/extract.js"
  }
}

验证方式

执行 yarn extract --dry-run 或者直接运行自定义指令,即可看到最终执行的完整命令中已经自动追加了固定参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:27:03