4个版本
0.4.2 | 2024年1月29日 |
---|---|
0.4.1 | 2023年8月23日 |
0.4.0 | 2023年8月22日 |
0.3.3 | 2023年7月8日 |
#131 in 开发工具
每月22次下载
75KB
1.5K SLoC
🍹 WazzUp
我对高度定制的Rust WASM项目构建工具的看法。
用例
本项目旨在实现一个特定目的:完全使用Rust构建WASM项目,这些项目应在浏览器或Tauri中运行。此外,它期望项目布局具有特定的格式,并且在配置选项上极为有限。
这意味着没有JS和Rust WASM的混合,不支持作为库或任何这些组合的构建。仅限Rust项目。
可能需要指出的是,这是我针对特定设置和布局的个人项目。这意味着不太可能接受任何新特性的请求。如果它符合您的用例,那太好了。如果不匹配,嗯... 分支它 😛。
先决条件
以下工具必须在您的系统上预先安装,并且可以通过您的$PATH
变量访问
- 通过
rustup
安装的Rust。 - Binaryen工具集,包括
wasm-opt
。 - Dart-sass编译器。
本项目还依赖于wasm-bindgen
,但版本严格绑定到您项目所使用的版本。因此,它将检测正确版本,并通过cargo
安装到其自己的缓存文件夹中。这意味着它不会与您通过cargo
或包管理器已安装的任何版本冲突。
顺便说一下,我使用Arch
Arch用户可以简单地按以下方式安装所需的依赖项
sudo pacman -S --needed binaryen dart-sass rustup
安装
该项目目前未在crates.io上发布,我不觉得需要提供预编译的二进制文件。相反,只需使用cargo
cargo install --git https://github.com/dnaka91/wazzup.git
布局
为了将配置选项保持到最小,项目必须遵循一定的文件结构,并至少包含以下文件
assets/main.sass
:任何样式的单一来源。也可以是main.scss
或main.css
。必须只引用assets/{sass,scss,css}/
文件夹中的文件。assets/sass/
:为main.{sass,scss,css}
文件提供的额外依赖。如果需要,assets/scss/
和assets/css/
文件夹可以与其共存。assets/*
:剩余的资产,不是样式表。src/
:所有 Rust 代码。Cargo.lock
:Rust 依赖项的锁定文件,并强制检测使用的wasm-bindgen
版本。Cargo.toml
:典型的 Rust 项目配置文件。index.html
:主 HTML 文件。.gitignore
:忽略项目中文件的模式,这些文件不会被项目用于文件更改检测。
一个最小化项目看起来像这样
.
├── assets
│ └── main.sass
├── src
│ └── main.rs
├── .gitignore
├── Cargo.lock
├── Cargo.toml
└── index.html
此外,输出被组装在 dist
文件夹中,包括 WASM 二进制文件、JS 接合、样式表、索引页面和任何附加资产。这意味着,.gitignore
至少应包括
dist/
target/
使用方法
应用程序目前有三个主要命令:status
、build
和 dev
。
status
搜索所有需要的外部程序和必需的项目文件,并以美观的 ASCII 表格报告其状态。build
编译项目及其所有资产到dist/
目录。dev
启动本地开发服务器,并在文件更改时重新构建项目。
有关详细信息,只需以 -h
/--help
标志运行应用程序。从那时起,使用方法应该是相当直观的。
使用 Tauri 进行设置
要配置 Tauri 以使用 Wazzup,请按如下方式调整您的 tauri.conf.json
:
{
"build": {
"beforeBuildCommand": "wazzup build --release",
"beforeDevCommand": "wazzup dev",
"devPath": "https://127.0.0.1:8080",
"distDir": "../dist"
// other build config ...
}
// other settings ...
}
许可证
本项目根据 AGPL-3.0 许可证(或 https://gnu.ac.cn/licenses/agpl-3.0.html)许可。
依赖关系
~36–50MB
~800K SLoC