.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 では、パッケージ設定と同じ構文でファイル先頭に import を宣言できます。違いは、import パスにモジュール名の後ろへ @version を任意で付けられる点です:

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

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

同じモジュールから import するすべてのパッケージは、同じバージョンを使う必要があります。

import パスで明示的にバージョンを指定しない場合は、ローカルのレジストリインデックスにある最新バージョンが使われます。

stdin から .mbtx スクリプトを実行する#

Moon は stdin から .mbtx スクリプトを実行することをサポートしています:

$ cat script.mbtx | moon run -

短いスクリプトでは、-c.mbtx ソースを直接渡せます:

$ moon run -c "<script>"
$ moon run -c 'fn main { println("hello") }'

シェルが提供する機能である heredoc も使えます:

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