最简示例下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
相关产品推荐
相关产品推荐

