go wasm 入门例子

725 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

go wasm 入门demo

1.编写go代码

1.1初始化项目

mkdir wasm

go mod init wasm

新建一个 main.go 文件,内容如下


// main.go
package main

import "syscall/js"

func main() {
	alert := js.Global().Get("alert")
	alert.Invoke("Hello World!")
}


2.在windows 下 go1.18.1 编译

set GOOS=js
set GOARCH=wasm
go build -o static/main.wasm

image.png

3.发布运行

3.1 在static 目录下创建一个 index.html

<html>
<script src="wasm_exec.js"></script>
<script>
	const go = new Go();
	WebAssembly.instantiateStreaming(fetch("main.wasm"), go.importObject)
		.then((result) => go.run(result.instance));
</script>

</html>

3.2 把 go 安装目录下的 wasm_exec.js 拷贝到staitc 下

image.png

整个static 目录下文件列表如下

image.png

3.3 把static 目录拷贝到 nginx 下

image.png

并且修改 nginx-1.8.1\conf\mime.types

添加以下内容

image.png

3.4 访问

http://localhost/static/index.html

image.png

4 源码路径

gitee.com/xuejianxino…