起因
最近接触到了一个go的2D游戏库,而且之前接触过WASM的概念,所以尝试将golang编译为wasm。
过程
编译(GO1.21)
和go的其他交叉编译设置一样,我们需要将GOOS设置为js,将GOARCH设置为wasm。
$env:GOOS="js"
$env:GOARCH="wasm"
go build -o test.wasm
运行
将位于$GOROOT/misc/wasm
目录下的wasm_exec.html和wasm_exec.js文件拷贝到我们的项目目录下。注意wasm_exec.html文件中默认是加载名为test.wasm的文件,我们需要将加载文件改为alien_invasion.wasm,或者将生成的文件改名为test.wasm
之后,编写一个web服务器
package main
import (
"log"
"net/http"
)
func main() {
if err := http.ListenAndServe(":8080", http.FileServer(http.Dir("./index"))); err != nil {
log.Fatal(err)
}
}
我的目录结构是
之后访问127.0.0.1:8080/wasm_exec.html,点击RUN即可
试试评论?