Go生成wasm初体验

  |   0 评论   |   0 浏览

背景

使用浏览器运行HelloWorld

编译

编译成wasm

GOOS=js GOARCH=wasm go build -o main.wasm

结果

./main.wasm

运行

准备

cp "$(go env GOROOT)/misc/wasm/wasm_exec.js" .

编辑 index.html 文件:

<html>
	<head>
		<meta charset="utf-8"/>
		<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>
	</head>
	<body></body>
</html>

安装 goexec

go get -u github.com/shurcooL/goexec

goexec 启动web服务

goexec 'http.ListenAndServe(`:9999`, http.FileServer(http.Dir(`.`)))'

运行结果

在浏览器控制台上,可以看到 "Hello World. "

使用Node.js运行HelloWorld

使用nodejs的好处是,测试和发布更方便。

参考