运行 .mbtx 脚本#

Moon 构建系统支持直接编写 MoonBit 脚本,无需模块或包配置文件。脚本文件使用 .mbtx 扩展名。

运行 .mbtx 文件#

编写脚本 script.mbtx

///|
import {
  "moonbitlang/core/list" @ls
}

///|
async fn main {
  let xs = @ls.from_array(["1", "2", "3"])
  debug(xs)
}

然后直接运行该脚本:

$ moon run script.mbtx

.mbtx 中,你可以在文件顶部声明导入,语法与包配置相同。不同之处在于:导入路径可以在模块名后可选地包含版本 @version

///|
import {
  "moonbitlang/async@0.16.5/fs",
  "moonbitlang/async@0.16.5",
}

///|
async fn main {
  ...
}

来自同一模块的所有导入包必须使用相同版本。

如果导入路径没有显式指定版本,则会使用本地索引中的最新版本。

从 stdin 运行 .mbtx 脚本#

Moon 支持从 stdin 运行 .mbtx 脚本:

$ cat script.mbtx | moon run -

你也可以使用 heredoc(由 shell 提供的一项功能):

$ moon run - <<EOF
fn main {
  println("hello")
}
EOF