컴파일 WebAssembly로 이동(브라우저 버전)

소개



많은 사람들이 아직 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로 이동





    웹어셈블리로 이동


  • WebAssembly 코드를 main.go의 기본 함수에 작성합니다.
  • 달리다 ./compile.sh
  • URLlocalhost:8080을 열고 콘솔에서 출력
  • 을 확인합니다.



    View on GitHub


    compile.sh 를 실행하면 위의 모든 단계가 실행됩니다.

    동영상

    좋은 웹페이지 즐겨찾기