moon的命令行帮助#

本文档包含moon命令行程序的帮助内容。

命令概述:

moon#

用法: moon <命令>

子命令:

  • new — 创建一个新的MoonBit模块

  • build — 构建当前包

  • check — 检查当前包,但不构建对象文件

  • run — 运行一个 main 包

  • test — 测试当前包

  • clean — 删除 target 目录

  • fmt — 格式化源代码

  • doc — 生成文档

  • info — 为模块中的所有包生成公共接口(.mbti)文件

  • add — 添加一个依赖

  • remove — 移除一个依赖

  • install — 安装依赖

  • tree — 显示依赖树

  • login — 登录到您的账户

  • register — 在 mooncakes.io 注册一个账户

  • publish — 发布当前模块

  • package — 打包当前模块

  • update — 更新包注册表索引

  • coverage — 代码覆盖率工具

  • generate-build-matrix — 生成用于基准测试的构建矩阵(遗留功能)

  • upgrade — 升级工具链

  • shell-completion — 为 bash/elvish/fish/pwsh/zsh 生成 shell 补全并输出到标准输出

  • version — 打印版本信息并退出

moon new#

创建一个新的MoonBit模块

用法: moon new [选项] [包名]

参数:

  • <包名> — 包的名称

选项:

  • --lib — 创建一个库包而不是可执行文件

  • --path <路径> — 包的输出路径

  • --user <用户> — 包的开发者名称

  • --name <名称> — 包的名称部分

  • --license <许可证> — 包的许可证

    默认值:Apache-2.0

  • --no-license — 不为包设置许可证

moon build#

构建当前包

用法: moon build [选项]

选项:

  • --std — 启用标准库(默认)

  • --nostd — 禁用标准库

  • -g, --debug — 发出调试信息

  • --release — 在发布模式下编译

  • --strip — 删除调试信息

  • --no-strip — 不删除调试信息

  • --target <目标> — 选择输出目标

    可能的值:wasmwasm-gcjsnativeall

  • --serial — 顺序处理所选目标

  • --enable-coverage — 启用覆盖率指令

  • --sort-input — 排序输入文件

  • --output-wat — 输出 WAT 而不是 WASM

  • -d, --deny-warn — 将所有警告视为错误

  • --no-render — 不要从 moonc 渲染诊断(不要将 ‘-error-format json’ 传递给 moonc)

  • --warn-list <WARN_LIST> — 警告列表配置

  • --alert-list <ALERT_LIST> — 警报列表配置

  • --frozen — 不同步依赖项,假设本地依赖项是最新的

  • -w, --watch — 监视文件系统并自动构建制品

moon check#

检查当前包,但不构建对象文件

用法: moon check [选项] [包路径]

参数:

  • <包路径> — 要检查的包(及其依赖项)

选项:

  • --std — 启用标准库(默认)

  • --nostd — 禁用标准库

  • -g, --debug — 发出调试信息

  • --release — 在发布模式下编译

  • --strip — 删除调试信息

  • --no-strip — 不删除调试信息

  • --target <目标> — 选择输出目标

    可能的值:wasmwasm-gcjsnativeall

  • --serial — 顺序处理所选目标

  • --enable-coverage — 启用覆盖率指令

  • --sort-input — 排序输入文件

  • --output-wat — 输出 WAT 而不是 WASM

  • -d, --deny-warn — 将所有警告视为错误

  • --no-render — 不要从 moonc 渲染诊断(不要将 ‘-error-format json’ 传递给 moonc)

  • --warn-list <WARN_LIST> — 警告列表配置

  • --alert-list <ALERT_LIST> — 警报列表配置

  • --output-json — 以 json 格式输出

  • --frozen — 不同步依赖项,假设本地依赖项是最新的

  • -w, --watch — 监视文件系统并自动检查文件

  • --patch-file <PATCH_FILE> — 要检查的补丁文件,仅在检查指定包时有效

  • --no-mi — 是否跳过 mi 生成,仅在检查指定包时有效

moon run#

run — 运行一个 main 包

用法: moon run [选项] <包或 mbt 文件> [参数]...

参数:

  • <包或 MoonBit 文件> — 要运行的包或 .mbt 文件

  • <参数> — 提供给要运行的程序的参数

选项:

  • --std — 启用标准库(默认)

  • --nostd — 禁用标准库

  • -g, --debug — 发出调试信息

  • --release — 在发布模式下编译

  • --strip — 删除调试信息

  • --no-strip — 不删除调试信息

  • --target <目标> — 选择输出目标

    可能的值:wasmwasm-gcjsnativeall

  • --serial — 顺序处理所选目标

  • --enable-coverage — 启用覆盖率指令

  • --sort-input — 排序输入文件

  • --output-wat — 输出 WAT 而不是 WASM

  • -d, --deny-warn — 将所有警告视为错误

  • --no-render — 不要从 moonc 渲染诊断(不要将 ‘-error-format json’ 传递给 moonc)

  • --warn-list <WARN_LIST> — 警告列表配置

  • --alert-list <ALERT_LIST> — 警报列表配置

  • --frozen — 不同步依赖项,假设本地依赖项是最新的

  • --build-only — 仅构建,不运行代码

moon test#

测试当前包

用法: moon test [选项]

选项:

  • --std — 启用标准库(默认)

  • --nostd — 禁用标准库

  • -g, --debug — 发出调试信息

  • --release — 在发布模式下编译

  • --strip — 删除调试信息

  • --no-strip — 不删除调试信息

  • --target <目标> — 选择输出目标

    可能的值:wasmwasm-gcjsnativeall

  • --serial — 顺序处理所选目标

  • --enable-coverage — 启用覆盖率指令

  • --sort-input — 排序输入文件

  • --output-wat — 输出 WAT 而不是 WASM

  • -d, --deny-warn — 将所有警告视为错误

  • --no-render — 不要从 moonc 渲染诊断(不要将 ‘-error-format json’ 传递给 moonc)

  • --warn-list <WARN_LIST> — 警告列表配置

  • --alert-list <ALERT_LIST> — 警报列表配置

  • -p, --package <包> — 在指定的包中运行测试

  • -f, --file <文件> — 在指定的文件中运行测试。仅在指定了 --package 时有效

  • -i, --index <索引> — 仅在文件中运行第 index 个测试。仅在指定了 --file 时有效

  • -u, --update — 更新测试快照

  • -l, --limit <限制> — 限制期望测试更新通过的运行次数,以避免无限循环

    默认值:256

  • --frozen — 不同步依赖项,假设本地依赖项是最新的

  • --build-only — 仅构建,不运行测试

  • --no-parallelize — 顺序运行目标后端中的测试

  • --test-failure-json — 以 JSON 格式打印失败消息

  • --patch-file <补丁文件> — 补丁文件的路径

  • --doc — 运行文档测试

moon clean#

删除 target 目录

用法: moon clean

moon fmt#

格式化源代码

用法: moon fmt [选项] [参数]...

参数:

  • <参数>

选项:

  • --check — 仅检查,不更改源代码

  • --sort-input — 排序输入文件

  • --block-style <块样式> — 在每个段之间添加分隔符

    可能的值:falsetrue

moon doc#

生成文档

用法: moon doc [选项]

选项:

  • --serve — 启动一个 Web 服务器来提供文档

  • -b, --bind <绑定> — 服务器的地址

    默认值:`

  • -p, --port <端口> — 服务器的端口

    默认值:3000

  • --frozen — 不同步依赖项,假设本地依赖项是最新的

moon info#

为模块中的所有包生成公共接口(.mbti)文件

用法: moon info [选项]

选项:

  • --frozen — 不同步依赖项,假设本地依赖项是最新的

  • --no-alias — 不要使用别名来缩短输出中的包名

moon add#

添加一个依赖

用法: moon add [选项] <包路径>

参数:

  • <包路径> — 要添加的包路径

选项:

  • --bin — 是否将依赖项添加为二进制文件

moon remove#

移除一个依赖

用法: moon remove <包路径>

参数:

  • <包路径> — 要移除的包路径

moon install#

安装依赖

用法: moon install

moon tree#

显示依赖树

用法: moon tree

moon login#

登录到您的账户

用法: moon login

moon register#

在 mooncakes.io 注册一个账户

用法: moon register

moon publish#

发布当前模块

用法: moon publish [选项]

选项:

  • --frozen — 不同步依赖项,假设本地依赖项是最新的

moon package#

打包当前模块

用法: moon package [选项]

选项:

  • --frozen — 不同步依赖项,假设本地依赖项是最新的

  • --list

moon update#

更新包注册表索引

用法: moon update

moon coverage#

代码覆盖率工具

用法: moon coverage <命令>

子命令:

  • report — 生成代码覆盖率报告

  • clean — 清理覆盖率工件

moon coverage report#

生成代码覆盖率报告

用法: moon coverage report [参数]... [命令]

参数:

  • <参数> — 要传递给覆盖率工具的参数

选项:

  • -h, --help — 显示覆盖率工具的帮助

moon coverage clean#

清理覆盖率工件

用法: moon coverage clean

moon generate-build-matrix#

生成用于基准测试的构建矩阵(遗留功能)

用法: moon generate-build-matrix [选项] --output-dir <输出目录>

选项:

  • -n <数字> — 将 drowdcolmrowmcol 的所有值设置为相同的值

  • --drow <DIR_ROWS> — 目录行数

  • --dcol <DIR_COLS> — 目录列数

  • --mrow <MOD_ROWS> — 模块行数

  • --mcol <MOD_COLS> — 模块列数

  • -o, --output-dir <输出目录> — 输出目录

moon upgrade#

升级工具链

用法: moon upgrade [选项]

选项:

  • -f, --force — 强制升级

moon shell-completion#

为 bash/elvish/fish/pwsh/zsh 生成 shell 补全并输出到标准输出

用法: moon shell-completion [选项]

Discussion: Enable tab completion for Bash, Elvish, Fish, Zsh, or PowerShell The script is output on stdout, allowing one to re-direct the output to the file of their choosing. Where you place the file will depend on which shell, and which operating system you are using. Your particular configuration may also determine where these scripts need to be placed.

The completion scripts won’t update itself, so you may need to periodically run this command to get the latest completions. Or you may put eval "$(moon shell-completion --shell <SHELL>)" in your shell’s rc file to always load newest completions on startup. Although it’s considered not as efficient as having the completions script installed.

Here are some common set ups for the three supported shells under Unix and similar operating systems (such as GNU/Linux).

Bash:

Completion files are commonly stored in /etc/bash_completion.d/ for system-wide commands, but can be stored in ~/.local/share/bash-completion/completions for user-specific commands. Run the command:

$ mkdir -p ~/.local/share/bash-completion/completions
$ moon shell-completion --shell bash >> ~/.local/share/bash-completion/completions/moon

This installs the completion script. You may have to log out and log back in to your shell session for the changes to take effect.

Bash (macOS/Homebrew):

Homebrew stores bash completion files within the Homebrew directory. With the bash-completion brew formula installed, run the command:

$ mkdir -p $(brew --prefix)/etc/bash_completion.d
$ moon shell-completion --shell bash > $(brew --prefix)/etc/bash_completion.d/moon.bash-completion

Fish:

Fish completion files are commonly stored in $HOME/.config/fish/completions. Run the command:

$ mkdir -p ~/.config/fish/completions
$ moon shell-completion --shell fish > ~/.config/fish/completions/moon.fish

This installs the completion script. You may have to log out and log back in to your shell session for the changes to take effect.

Elvish:

Elvish completions are commonly stored in a single completers module. A typical module search path is ~/.config/elvish/lib, and running the command:

$ moon shell-completion --shell elvish >> ~/.config/elvish/lib/completers.elv

will install the completions script. Note that use >> (append) instead of > (overwrite) to prevent overwriting the existing completions for other commands. Then prepend your rc.elv with:

`use completers`

to load the completers module and enable completions.

Zsh:

ZSH completions are commonly stored in any directory listed in your $fpath variable. To use these completions, you must either add the generated script to one of those directories, or add your own to this list.

Adding a custom directory is often the safest bet if you are unsure of which directory to use. First create the directory; for this example we’ll create a hidden directory inside our $HOME directory:

$ mkdir ~/.zfunc

Then add the following lines to your .zshrc just before compinit:

fpath+=~/.zfunc

Now you can install the completions script using the following command:

$ moon shell-completion --shell zsh > ~/.zfunc/_moon

You must then open a new zsh session, or simply run

$ . ~/.zshrc

for the new completions to take effect.

Custom locations:

Alternatively, you could save these files to the place of your choosing, such as a custom directory inside your $HOME. Doing so will require you to add the proper directives, such as sourceing inside your login script. Consult your shells documentation for how to add such directives.

PowerShell:

The powershell completion scripts require PowerShell v5.0+ (which comes with Windows 10, but can be downloaded separately for windows 7 or 8.1).

First, check if a profile has already been set

PS C:\> Test-Path $profile

If the above command returns False run the following

PS C:\> New-Item -path $profile -type file -force

Now open the file provided by $profile (if you used the New-Item command it will be ${env:USERPROFILE}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Next, we either save the completions file into our profile, or into a separate file and source it inside our profile. To save the completions into our profile simply use

PS C:\> moon shell-completion --shell powershell >>
${env:USERPROFILE}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

This discussion is taken from rustup completions command with some changes.

选项:

  • --shell <SHELL> — 要为其生成补全的 shell

    默认值:<您的 shell>

    可能的值:bash, elvish, fish, powershell, zsh

moon version#

打印版本信息并退出

用法: moon version [选项]

选项:

  • --all — 打印所有版本信息

  • --json — 以 JSON 格式打印版本信息

  • --no-path — 不打印路径


本文档是由 clap-markdown 自动生成的。