Matt 90b4e55ebc
Docusaurus Overhaul (#2275)
* change suffixes from md to mdx
fix broken links for English locale
tree shake and update docusaurus
add docusaurus ideal image plugin
use svg and themed image
delete unused static asset

* move localized landing page

* change GitLocalize project page

* nit pick

* remove ignore to have the block checked
2021-12-20 12:10:45 +02:00

51 lines
1.4 KiB
Plaintext

---
title: "Using wasm-pack"
---
This tool was created by the Rust / Wasm Working Group for building WebAssembly applications. It supports packaging code into `npm` modules and has an accompanying [Webpack plugin](https://github.com/wasm-tool/wasm-pack-plugin) for easy integration with existing JavaScript applications. More information is given in [the `wasm-pack` documentation](https://rustwasm.github.io/docs/wasm-pack/introduction.html).
:::note
`wasm-pack` requires that you set the crate-type explicitly to include `cdylib`:
```toml
[lib]
crate-type = ["rlib", "cdylib"]
```
:::
## Install
```bash
cargo install wasm-pack
```
## Build
This command will produce a bundle in the `./pkg` directory with your app's compiled WebAssembly
along with a JavaScript wrapper which can be used to start your application.
```bash
wasm-pack build --target web
```
## Bundle
For more information on rollup.js visit this [guide](https://rollupjs.org/guide/en/#quick-start).
```bash
rollup ./main.js --format iife --file ./pkg/bundle.js
```
When using a bundler like rollup.js you can omit `--target web`.
## Serve
Feel free to use your preferred server. Here we use a simple Python server to serve the built app.
```bash
python -m http.server 8000
```
If you don't have Python installed, you can install and use the [`simple-http-server`](https://github.com/TheWaWaR/simple-http-server) crate instead.