这是 wasm-pack 的**未发布**文档,已发布的文档可在 Rust 和 WebAssembly 主文档网站上找到 。此处记录的功能可能在 wasm-pack 的发布版本中不可用。

wasm-pack build

wasm-pack build 命令创建 JavaScript 交互操作所需的文件,以及将包发布到 npm 所需的文件。这包括将您的代码编译为 wasm 并生成一个 pkg 文件夹。此 pkg 文件夹将包含 wasm 二进制文件、JS 包装器文件、您的 READMEpackage.json 文件。

默认情况下,pkg 目录会自动被 .gitignore,因为它包含不打算签入版本控制的构建工件。0

路径

wasm-pack build 命令可以接受一个可选的路径参数,例如:

wasm-pack build examples/js-hello-world

此路径应指向包含 Cargo.toml 文件的目录。如果没有给出路径,则 build 命令将在当前目录中运行。

输出目录

默认情况下,wasm-pack 将为其构建输出生成一个名为 pkg 的目录。如果您想自定义它,可以使用 --out-dir 标志。

wasm-pack build --out-dir out

上面的命令将把您的构建工件放在名为 out 的目录中,而不是默认的 pkg

生成的文件名

标志 --out-name 设置输出文件名的前缀。如果未提供,则使用包名称。

用法示例,假设我们的板条箱名为 dom

wasm-pack build
# will produce files
# dom.d.ts  dom.js  dom_bg.d.ts  dom_bg.wasm  package.json  README.md

wasm-pack build --out-name index
# will produce files
# index.d.ts  index.js  index_bg.d.ts  index_bg.wasm  package.json  README.md

配置文件

build 命令接受一个可选的配置文件参数:--dev--profiling--release 之一。如果没有提供,则使用 --release

这控制是否启用调试断言、是否生成调试信息以及启用哪些(如果有)优化。

配置文件调试断言调试信息优化笔记
--dev适用于开发和调试。
--profiling在分析和调查性能问题时很有用。
--release适用于发布到生产环境。

--dev 配置文件将使用 cargo 的 默认非发布配置文件 构建输出包。这种构建方式更快,但对输出应用的优化很少,并且启用调试断言和其他运行时正确性检查。--profiling--release 配置文件使用 cargo 的发布配置文件,但前者也启用调试信息,这在分析器中调查性能问题时很有帮助。

配置文件标志的具体含义可能会随着平台的成熟而发展。

目标

build 命令接受一个 --target 参数。这将自定义发出的 JS 以及 WebAssembly 文件的实例化和加载方式。有关此处各种策略的更多文档,请参阅 有关使用编译输出的文档

wasm-pack build --target nodejs
选项用法描述
未指定bundler捆绑器输出适合与 Webpack 等捆绑器交互的 JS。您将 import JS,并且 module 键在 package.json 中指定。默认情况下,sideEffects: false
nodejsNode.js输出使用 CommonJS 模块的 JS,用于 require 语句。package.json 中的 main 键。
web浏览器中的原生输出可以在浏览器中作为 ES 模块原生导入的 JS,但 WebAssembly 必须手动实例化和加载。
no-modules浏览器中的原生web 相同,除了 JS 包含在页面上并修改全局状态,并且不支持 wasm-bindgen 的许多功能,如 web
denoDeno输出可以在 deno 中作为 ES 模块原生导入的 JS。

范围

build 命令还接受一个可选的 --scope 参数。这将限定您的包名称,如果您包名称可能与公共注册表中的某些内容冲突,这将很有用。例如

wasm-pack build examples/js-hello-world --scope test

此命令将为名为 @test/js-hello-world 的包创建一个 package.json 文件。有关范围的更多信息,您可以参考 npm 文档 此处

模式

build 命令接受一个可选的 --mode 参数。

wasm-pack build examples/js-hello-world --mode no-install
选项描述
no-installwasm-pack build 隐式创建 wasm 绑定,而无需安装 wasm-bindgen
normal使用已安装的 wasm-bindgen 完成 no-install 的所有操作。

额外选项

build 命令可以将额外选项直接传递给 cargo build,即使它们在 wasm-pack 中不受支持。要使用它们,只需将额外参数添加到命令的末尾,就像您对 cargo build 所做的那样。例如,要使用 cargo 的离线功能构建前面的示例

wasm-pack build examples/js-hello-world --mode no-install -- --offline

0 如果您需要在 pkg 目录和 NPM 包中包含其他资产,我们打算很快为您用例提供解决方案。