컴파일 WebAssembly로 이동(브라우저 버전)
4673 단어 compilebrowsergowebassembly
소개
많은 사람들이 아직 WebAssembly의 출현으로 우리에게 주어진 큰 가능성을 깨닫지 못했다고 생각합니다.
이제 기본적으로 거의 모든( see list ) 언어를 WebAssembly로 컴파일할 수 있습니다. 즉, 클라이언트 측 브라우저에서 실행할 수 있는 애플리케이션의 범위가 기하급수적으로 증가했습니다!
예를 들어 Go 코드를 가져와서 WebAssembly로 컴파일하고 브라우저에서 기본적으로 실행하는 방법을 아래에서 보여드리겠습니다.
🍖 & 🥔
차근차근 여기까지 갑시다!
차근차근 여기까지 갑시다!
WebAssembly로 변환하려는 Go 애플리케이션을 준비합니다. 참고 패키지만 컴파일할 수 있습니다
main
. 코드가 기본 패키지의 일부가 아닌 경우 그렇게 만드십시오.다음은 내가 컴파일할 내용입니다.
package main
import "fmt"
func main() {
fmt.Println("Hello world!")
}
권위 있는.
go 명령을 실행하여 Go 코드를 WASM으로 컴파일합니다.
GOOS=js GOARCH=wasm go build -o main.wasm
브라우저에서 컴파일된 WASM을 실행할 수 있는 glue 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>
이제 로컬 웹 서버를 가동하고 이를 통해 HTML 파일을 로드해야 합니다. 이 작업을 수행하는 방법을 잘 모르는 경우 Go를 사용하여 수행할 수 있는 빠른 방법이 있습니다. 터미널에서 다음 두 명령을 실행하십시오.
go get -u github.com/shurcooL/goexec
goexec 'http.ListenAndServe(`:8080`, http.FileServer(http.Dir(`.`)))'
모든 것이 잘 되었다면
localhost:8080
로 이동하여 빈 페이지가 표시될 수 있습니다. 이제 개발자 도구를 열고 콘솔을 확인하세요!훌륭한 성공!
프로세스 자동화
또한 하나의 명령으로 서버를 컴파일하고 시작할 수 있는 작은 스크립트도 함께 작성했습니다.
아래 저장소를 확인하십시오.
dorin131
/
웹어셈블리로 이동
컴파일 WebAssembly로 이동
웹어셈블리로 이동
main.go
의 기본 함수에 작성합니다../compile.sh
localhost:8080
을 열고 콘솔에서 출력View on GitHub
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.)