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

如何通过单条命令一次性批量构建多个Jsonnet文件

Jsonnet 批量编译实现方案

官方原生 Jsonnet 编译器本身未内置多文件批量编译参数,你可以通过 Shell 命令组合实现单条命令完成指定规则的批量/递归编译,常见实现方案如下:

  • 方案1:Linux/macOS 环境下使用 find + xargs 实现递归编译
    该方案可以递归扫描指定目录下所有符合 *.jsonnet 后缀规则的文件,逐个编译生成同名 .json 输出文件,示例命令如下:
    find . -name "*.jsonnet" -type f | xargs -I {} jsonnet {} -o {.}.json
    
    参数说明:
    • . 表示从当前工作目录开始扫描,可替换为你需要的指定文件夹路径
    • -I {} 会将 find 命令查询到的每个文件路径替换到后续命令中的 {} 位置
    • {.} 是 xargs 内置语法,会自动去掉匹配文件的后缀名,实现 a.jsonnet 输出为 a.json 的效果
  • 方案2:Windows 环境下使用 Powershell 单行命令实现
    如果你使用 Windows 系统,可直接用 Powershell 原生命令完成递归批量编译:
    Get-ChildItem -Path . -Recurse -Filter *.jsonnet | ForEach-Object { jsonnet $_.FullName -o ($_.FullName -replace '\.jsonnet$', '.json') }
    
  • 进阶用法:自定义输出目录
    如果你需要把所有编译后的 JSON 文件统一输出到指定目录(比如 dist 目录),可以使用如下命令:
    mkdir -p dist && find . -name "*.jsonnet" -type f | xargs -I {} sh -c 'jsonnet {} -o dist/$(basename {} .jsonnet).json'
    

注意:如果你的 Jsonnet 文件存在跨文件导入依赖,可在编译命令中添加 -J 参数指定依赖库搜索路径,例如添加 -J ./lib 表示将当前目录下的 lib 文件夹作为导入搜索路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:36:03