rsw-rs

**`rsw = rs(rust) → w(wasm)`** - 基于 `wasm-pack` 实现的一个命令行工具,当本地文件变更时自动构建。 **[English](./README.md) | 简体中文** ## 预安装 - [rust](https://www.rust-lang.org/learn/get-started) - [nodejs](https://nodejs.org) - [wasm-pack](https://github.com/rustwasm/wasm-pack) ## 用法 ```bash # 在 Rust 环境下安装到全局 cargo install rsw ``` ```bash # 查看帮助 rsw -h # rsw.toml - 初始化配置 rsw init # 生成一个 wasm 项目 rsw new # 开发模式 rsw watch # 生产构建 rsw build # 清除 link 及 build 产物 rsw clean ``` ## Awesome rsw - [[rsw demo] learn-wasm](https://github.com/lencx/learn-wasm) - 🎲 Learning WebAssembly - [vite-plugin-rsw](https://github.com/lencx/vite-plugin-rsw) - 🦀 wasm-pack plugin for Vite - [create-mpl](https://github.com/lencx/create-mpl) - ⚡️ Create a project in seconds! ## 日志 ```bash # @see: https://github.com/env-logger-rs/env_logger # RUST_LOG=rsw= rsw # 1. info RUST_LOG=rsw=info rsw # 2. all: info, trace, debug, error, warn RUST_LOG=rsw rsw ``` ### .watchignore 定义要忽略的文件/路径,类似于 `.gitignore`。 例如: ```bash # .watchignore *.js a/b/**/*.txt !a/b/**/main.txt ``` ## rsw.toml > 配置文件 - [TOML 文档](https://toml.io/cn/) - [`wasm-pack build` 文档](https://rustwasm.github.io/docs/wasm-pack/commands/build.html) ## 配置信息 在项目根路径下创建 `rsw.toml`,配置 `rust crate` 参数,然后执行 `rsw watch` 或者 `rsw build`。 - **`name`** - 配置文件名称(无意义,可选) - **`version`** - 配置文件版本(无意义,可选) - **`interval`** - 开发模式 `rsw watch` 下,文件变更触发 `wasm-pack build` 的时间间隔,默认 `50` 毫秒 - **`cli`** - `npm` | `yarn` | `pnpm`,默认是 `npm`。使用指定的 `cli` 执行 `link`,例如 `npm link` - **`[new]`** - 使用 `wasm-pack new` 快速生成一个 `rust crate`, 或者使用自定义模板 `rsw.toml -> [new] -> using` - **`using`** - `wasm-pack` | `rsw` | `user`, 默认是 `wasm-pack` - `wasm-pack` - `rsw new --template