https://developer.mozilla.org/ko/docs/WebAssembly/Rust_to_wasm
cargo install wasm-pack
으로는 설치시 에러가 발생하여 진행하기 어려워 아래 링크의 설치 파일을 이용해서 wasm-pack 설치
https://rustwasm.github.io/wasm-pack/installer/
cargo new --lib hello-wasm
Cargo.toml은 빌드를 위해 설정하는 파일
src/lib.rs의 내용을 삭제 후 아래 내용 기입
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
extern {
pub fn alert(s: &str);
}
#[wasm_bindgen]
pub fn greet(name: &str) {
alert(&format!("Hello, {}!", name));
}
"scripts"에 "serve" : "webpack-dev-server" 추가
"devDependencies": {
"webpack": "^4.25.1",
"webpack-cli": "^3.1.2",
"webpack-dev-server": "^3.1.10"
}
devDependencies 항목 추가
const path = require('path');
module.exports = {
entry: "./index.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "index.js",
},
mode: "development"
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello-wasm example</title>
</head>
<body>
<script src="./index.js"></script>
</body>
</html>
const js = import("../pkg/hello_wasm.js");
js.then(js => {
js.greet("WebAssembly");
});
npm install
npm run serve