首先是rust环境搭建
这里我只会rustup 一路default
https://rustup.rs/
然后是安装wasm-pack这个软件
https://rustwasm.github.io/wasm-pack/installer/
安装完毕之后 按教程所说是wasm-pack new name就可以创建出一个项目了
结果 我输入这个命令行之后 出现了奇怪的报错 并不能成功创建 说问题出在一个叫
cargo-generate的包上,需要cargo install cargo-generate(MMP 这要手动整)
于是手动搞,但是我最后16G的C盘啊 一跑就变成14.5G了,心累WAW
励志挣钱了给自己买个大的固态C盘
坑点
我艹 这个new根本创建不出来项目 直接烂了
于是还是用cargo new一个普通项目
然后修改toml文件`
[package]
name = “xxx”
version = “0.1.0”
edition = “2021”
[dependencies]
wasm-bindgen = “0.2.83”
[lib]
crate-type = [“cdylib”]
[profile.dev]
opt-level = “s”`
这几个方括号分别是包的信息,依赖的包 lib那个是指的是我们是个动态库,opt-level=s说的是要生产的代码尽量小
然后实际代码就随便写写
lib.rs
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn test()->i32 {
2
}
就可以了
怎么打包 终于这个wasm-pack能正常跑一下了
wasm-pack build --target web然后就在pkg文件夹下面生成了wasm文件了pkg文件夹3.5kb不知道算不算大 只写了个这个函数
然后就可以搞个index.html引用试试他了
<!DOCTYPE html>
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type"/>
</head>
<body>
<script type="module">
import init, { test } from '../pkg/simplewasm.js';
async function run() {
await init();//这个是要await的 是执行了load的
console.log(test());
}
}
run();
</script>
</body>
</html>