You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

最简示例下Trunk构建失败,寻求排查方向

排查Trunk构建找不到WASM输出的方向

1. 检查Cargo.toml核心配置

Trunk依赖Rust项目生成WASM目标,确保Cargo.toml包含以下必要配置:

[package]
name = "your-project-name"
version = "0.1.0"
edition = "2021"

[dependencies]
yew = "0.20"
wasm-bindgen = "0.2"

[lib]
crate-type = ["cdylib", "rlib"]  # 必须包含`cdylib`,否则Cargo不会生成WASM库文件

若缺少[lib]段或crate-type未指定cdylib,Cargo不会输出WASM产物,Trunk自然无法找到。

2. 确认项目入口文件结构

Trunk默认以src/lib.rs作为WASM入口,若你的入口是src/main.rs,需在index.html中显式指定:

<script data-trunk src="src/main.rs"></script>

或把入口逻辑移至src/lib.rs,并通过宏标记启动函数:

use wasm_bindgen::prelude::*;
use yew::prelude::*;

#[wasm_bindgen(start)]
pub fn run_app() {
    yew::Renderer::<App>::new().render();
}

#[function_component(App)]
fn app() -> Html {
    html! { <h1>Hello Yew!</h1> }
}

3. 手动验证Cargo的WASM构建

单独执行cargo build --target wasm32-unknown-unknown,排查Cargo本身的问题:

  • 检查WASM目标是否安装:执行rustup target list | grep wasm32-unknown-unknown,若未安装则运行rustup target add wasm32-unknown-unknown
  • 查看Cargo输出,确认是否存在编译错误(Trunk的日志可能隐藏具体编译问题)

4. 检查Trunk的工作环境

  • 确保在项目根目录执行trunk build,Trunk需要读取根目录的Cargo.toml和index.html
  • 若存在Trunk.toml配置文件,检查其中的target或asset路径是否有误

5. 清理缓存后重试

缓存异常可能导致构建失败,执行以下命令清理后重新构建:

trunk clean
cargo clean
trunk build

内容的提问来源于stack exchange,提问作者user23415

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:22:58