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

如何从本地文件调用WarpScript宏?含远程多文件部署需求

WarpScript跨文件宏调用与远程部署方案

一、本地Docker环境跨文件调用宏的解决方法

1. 核心逻辑:Warp10的宏搜索路径

Warp10通过@指令加载文件时,仅从配置的搜索路径中查找.mc2文件,Docker环境下默认搜索路径包含/opt/warp10/macros。你的代码文件必须放在这些路径下,或修改配置添加自定义路径。

2. 正确调用步骤

假设你有两个文件:

  • mine.mc2:定义顶层宏
// mine.mc2
'hello' <% 'Hello from macro!' %> MACRO
  • caller.mc2:调用mine.mc2中的宏

方式1:先加载整个文件,再调用宏

在caller.mc2中先加载mine.mc2的内容,宏会被注入当前上下文:

// caller.mc2
@mine  // 加载mine.mc2,无需加.mc2后缀
@hello // 调用hello宏

方式2:直接引用文件中的指定宏

如果宏是顶层定义的,可直接通过@文件名/宏名调用,无需提前加载整个文件:

// caller.mc2
@mine/hello // 直接调用mine.mc2中的hello宏

3. Docker环境路径配置

若本地代码不在默认搜索路径,启动容器时通过挂载目录将本地代码映射到容器的宏目录:

docker run -v /本地代码目录:/opt/warp10/macros -p 8080:8080 warp10io/warp10

或修改容器内warp10.conf配置,添加自定义搜索路径:

warpscript.search.path=/opt/warp10/macros,/你的自定义路径

二、远程环境快速部署多文件代码

1. WarpFleet包管理(推荐)

WarpFleet是Warp10官方包管理工具,适合管理多文件依赖的宏:

  • 将拆分后的宏打包成WarpFleet包,通过warpfleet.json定义包信息与依赖
  • 上传包到WarpFleet Registry(私有/公共均可)
  • 在远程Warp10实例配置中添加Registry地址,通过REQUIRE指令加载包:
    REQUIRE '你的包名' '1.0.0'
    @hello // 直接调用包中的宏
    

2. 手动上传文件到远程主机

无需包管理时,直接将所有.mc2文件上传到远程Warp10的宏目录(如/opt/warp10/macros),确保配置的搜索路径包含该目录,即可和本地一样通过@文件名加载调用。

3. 批量部署脚本

用Shell脚本实现本地代码与远程主机的同步,示例:

rsync -avz /本地代码目录/ user@远程主机:/opt/warp10/macros/
ssh user@远程主机 'systemctl restart warp10'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:08:33