Skip to main content
Version: 0.18.0

项目设置

Rust#

首先 ,你需要安装 Rust 。如何安装 Rust 和 cargo 构建工具,请参考官方说明

此外,为了将 Rust 编译为 Wasm,您还需要安装wasm32-unknown-unknown。如果你使用的是 rustup,只需运行rustup target add wasm32-unknown-unknown

important

Yew 支持的最低 Rust 版本 (MSRV) 是1.49.0 。旧版本可能会导致意外问题,并伴有难以理解的错误消息。你可以使用 rustup show (在“active toolchain”下)或 rustc --version检查您的工具链版本。要更新您的工具链,请运行rustup update

Wasm 构建工具#

需要安装额外的工具以方便 WebAssembly 与 JavaScript 间的相互操作。此外,根据你选择的工具,他们可以生成所有必需的 JavaScript 包装代码来让你的应用程序中的 .wasm 文件运行在浏览器中,从而帮助减轻部署和打包的麻烦。

trunk#

一个实际是为了构建 Yew 应用程序的而制作的工具。它可以构建任何基于wasm-bindgen的应用程序,其设计灵感来自 rollup.js。使用 Trunk,您无需安装 Node.js 或接触任何 JavaScript 代码。它可以将资源(assets)绑定到的你的应用程序,甚至附带 Sass 编译器。

我们所有的示例都基于 Trunk 构建。

开始使用 trunk

wasm-pack#

由 Rust / Wasm 工作组开发的用于打包 WebAssembly 的 CLI 工具。最好与wasm-pack-plugin一起使用。 wasm-pack的主要目的是构建用于 JavaScript 的 Wasm 库。因此,它只能构建库,不提供开发服务器或自动重建等有用工具。

开始使用 wasm-pack

cargo-web#

wasm-bindgen创造之前,可以称之为首选的最佳工具。

开始使用 cargo web

对比#

trunkwasm-packcargo-web
项目状态积极维护由 Rust / Wasm 工作组积极维护超过 6 个月没有 Github 活动
开发体验开箱即用!无需任何外部依赖。比较基础。你需要编写一些脚本来简化你的开发体验或者使用webpack插件版本。适用于代码层面,但需要单独的资产通道。
本地服务器支持仅限webpack插件版本支持
根据本地更改自动重新构建支持仅限webpack插件版本支持
资源处理支持仅限webpack插件版本仅限静态资源
无头浏览器测试开发中支持支持
支持生成的目标代码
  • wasm32-unknown-unknown
  • wasm32-unknown-unknown
  • wasm32-unknown-unknown
  • wasm32-unknown-emscripten
  • asmjs-unknown-emscripten
web-sys兼容兼容不兼容
stdweb不兼容兼容兼容
示例用法简单的示例新手模板yew-stdweb 示例程序的构建脚本