原生目标
发布包会根据当前操作系统、架构和 Linux libc 加载一个 napi-rs 二进制。包内不提供 JavaScript 或 WASI 实现。
受支持目标
| Rust target | 平台包 | 运行环境 |
|---|---|---|
aarch64-apple-darwin | @amamo/mdx-darwin-arm64 | macOS arm64 |
x86_64-apple-darwin | @amamo/mdx-darwin-x64 | macOS x64 |
aarch64-unknown-linux-gnu | @amamo/mdx-linux-arm64-gnu | Linux arm64 glibc |
x86_64-unknown-linux-gnu | @amamo/mdx-linux-x64-gnu | Linux x64 glibc |
aarch64-unknown-linux-musl | @amamo/mdx-linux-arm64-musl | Linux arm64 musl |
x86_64-unknown-linux-musl | @amamo/mdx-linux-x64-musl | Linux x64 musl |
x86_64-pc-windows-msvc | @amamo/mdx-win32-x64-msvc | Windows x64 |
绑定何时加载
createCompiler() 会归一化配置,也可能初始化 Shiki,但不会加载 Rust。匹配的原生二进制会在
第一次调用 build() 或 transform() 时延迟加载。平台包必须与根包版本完全相同。
| 顶层错误 | 含义 |
|---|---|
AMAMO_NATIVE_UNSUPPORTED | OS 或 CPU 没有已知 target 映射。 |
AMAMO_NATIVE_UNAVAILABLE | target 已知,但本地和平台包绑定都无法加载。 |
平台包版本不匹配时,AMAMO_NATIVE_VERSION_MISMATCH 位于 AMAMO_NATIVE_UNAVAILABLE 的
aggregate cause 中,不是顶层 loader 错误。
如果依赖是在另一台机器上安装的,请在当前目标重新安装。可以复用包管理器缓存,但不要复制
node_modules。
Node.js 要求
根包和平台包要求使用 Node.js 20.19 或更新版本。
Shiki 不能替代原生绑定
highlight.engine 只决定围栏代码块如何高亮。选择 javascript 不会为 MDX 编译提供
JavaScript 回退;应用仍然需要上表中匹配当前运行环境的平台包。高亮选项见
配置参考。