コンパイルはwebassembly (ブラウザ版)へ移動します.
4410 ワード
導入
私は、多くの人々が我々がwebassemblyの出現で与えられた大きな可能性をまだ理解したと思いません.
私たちは、現在ほとんどすべてをコンパイルすることができますsee list ) への言語.これは、クライアント側でブラウザで実行できるアプリケーションの範囲が指数関数的に成長したことを意味します!
たとえば、あなたのGoコードをどのようにして、それをWebassemblyにコンパイルし、ブラウザでネイティブに実行するかを以下に示します.
🍖 & 🥔
一歩一歩しましょう
一歩一歩しましょう
WebBassemblyに変換するGoアプリケーションを準備します.のみコンパイルすることができます
main
パッケージ.コードがメインパッケージの一部でない場合は、そうしてください.ここでコンパイルする予定です.
package main
import "fmt"
func main() {
fmt.Println("Hello world!")
}
クラシック.WORMコードをコンパイルするためにgoコマンドを実行します.
GOOS=js GOARCH=wasm go build -o main.wasm
ブラウザでコンパイルされたWAMMを実行できるようにする糊jsファイルをコピーします.これはあなたの中にあるファイルです
$GOROOT
ディレクトリ.cp "$(go env GOROOT)/misc/wasm/wasm_exec.js" .
次のコンテンツでHTMLファイルを作成します.我々は、含まれていることに注意してください
wasm.exec.js
コピーしたファイル.<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>
今、あなたはローカルWebサーバーをスピンし、それを介してHTMLファイルをロードする必要があります.どのようにこれを行うにしていない場合は、それを行うには簡単な方法があります.端末で次の2つのコマンドを実行します.
go get -u github.com/shurcooL/goexec
goexec 'http.ListenAndServe(`:8080`, http.FileServer(http.Dir(`.`)))'
localhost:8080
と空白のページが表示されます.今開発者ツールを開き、コンソールをチェック!大成功!
プロセスの自動化
私はまた、1つのコマンドでサーバーをコンパイルして起動させる小さなスクリプトをまとめました.
下のリポジトリをチェックしてください.
ドレイ131
/
webassemblyに移動する
コンパイルは
webassemblyに移動する
main.go
./compile.sh
localhost:8080
そして、出力用のコンソールをチェックします走ることで
compile.sh
, 上記のすべてのステップが実行されます.ビデオ
Reference
この問題について(コンパイルはwebassembly (ブラウザ版)へ移動します.), 我々は、より多くの情報をここで見つけました
https://dev.to/dorin/compile-go-to-webassembly-the-browser-version-152a
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(コンパイルはwebassembly (ブラウザ版)へ移動します.), 我々は、より多くの情報をここで見つけました https://dev.to/dorin/compile-go-to-webassembly-the-browser-version-152aテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol