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" }] } };