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 <目标>
— 选择输出目标可能的值:
wasm
,wasm-gc
,js
,native
,all
--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 <目标>
— 选择输出目标可能的值:
wasm
,wasm-gc
,js
,native
,all
--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 <目标>
— 选择输出目标可能的值:
wasm
,wasm-gc
,js
,native
,all
--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 <目标>
— 选择输出目标可能的值:
wasm
,wasm-gc
,js
,native
,all
--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 <块样式>
— 在每个段之间添加分隔符可能的值:
false
,true
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 <数字>
— 将drow
、dcol
、mrow
、mcol
的所有值设置为相同的值--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 source
ing
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
自动生成的。