GitHub - wasm-tool/rust-loader (original) (raw)
@wasm-tool/rust-loader
Webpack plugin for Rust
Installation
yarn add --dev @wasm-tool/rust-loader
Usage
It is highly recommended to use the Rust Webpack Template to create a new Rust project.
But if you instead want to manually create the project yourself, follow these steps:
Create a Cargo.toml
file which has the cdylib
crate type:
[package] name = "foo" version = "0.1.0" edition = "2018"
[lib] crate-type = ["cdylib"]
[dependencies] wasm-bindgen = "0.2.48"
[dependencies.web-sys] version = "0.3.25" features = ["console"]
And create a src/lib.rs
file:
use wasm_bindgen::prelude::*; use web_sys::console;
#[wasm_bindgen(start)] pub fn main_js() { console::log_1(&JsValue::from("Hello world!")); }
Now add the loader to your webpack.config.js
and import the Cargo.toml
file:
module.exports = { entry: { index: "./Cargo.toml" }, module: { rules: [{ test: /Cargo.toml$/, use: "@wasm-tool/rust-loader" }] } };
Then just run webpack
as usual.
It also fully supports webpack-dev-server
(including live reloading):
module.exports = { entry: { index: "./Cargo.toml" }, devServer: { liveReload: true, open: true, noInfo: true, overlay: true }, module: { rules: [{ test: /Cargo.toml$/, use: "@wasm-tool/rust-loader" }] } };