3 个不稳定版本
0.1.1 | 2023 年 7 月 28 日 |
---|---|
0.1.0 | 2023 年 7 月 21 日 |
0.0.0 | 2022 年 12 月 10 日 |
#306 in Cargo 插件
245KB
6K SLoC
cargo-nw
Node-Webkit 的应用程序部署包构建器
概述
cargo-nw
通过将应用程序文件与 NW 二进制文件捆绑,允许创建 NW 应用程序的定制应用程序部署包。此工具是为了构建 NW Rust WASM 应用程序而创建的,但它可以用于任何新或现有项目。
部署由 nw.toml
清单文件控制,允许完全自定义可分发版本中的信息包,创建额外的操作(例如在构建过程的各个阶段执行程序),使用 globs 或正则表达式过滤器复制文件组。
对于应用程序图标,只需要提供一个单个的大尺寸 .png
文件 - cargo-nw
将自动调整大小并生成所有适当的图标变体和文件格式。可以为每个操作系统提供自定义图标。
操作系统支持
- MacOS: DMG、存档
- Windows: InnoSetup、存档
- Linux: SNAP、存档
注意:要为每个平台创建可分发版本,需要在特定平台上运行 cargo-nw
。
功能
- 基本功能无外部依赖
- 自动下载 NW 分发二进制文件(可选 SDK)
- 自动处理应用程序图标
- 自动在 Linux 上创建
.desktop
文件 - 自动处理 DMG 资源
- 自动处理 MacOS 和 Windows 资源清单
- 为 Windows 资源清单提供自定义字符串
- 支持不同类型的 SNAP 限制
- 在 Windows 安装期间创建防火墙规则
- 可选包含 FFMPEG 库
依赖项
- Rust
- InnoSetup for Windows 用于创建交互式 Windows 安装程序
- Wasmpack 如果在 Rust 中构建 NW WASM 应用程序
- SnapCraft + LXD
安装
cargo install cargo-nw
文档
有关详细文档,请参阅Cargo NW 文档
清单
nw.toml
包清单文件包含项目的 TOML 规范。它通常位于项目根目录。
[application]
name = "my-app"
title = "My App"
version = "0.1.0"
organization = "My Organization"
[description]
short = "This is my app" # max 78 chars
long = """
Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit
esse cillum dolore eu fugiat nulla pariatur.
"""
[package]
exclude = ["resources/setup"]
execute = [
{ build = { cmd = "my-package-script $OUTPUT" } },
]
[nwjs]
version = "0.70.1"
ffmpeg = false
[windows]
uuid = "95ba1908-ff47-4281-4dca-7461bc1ee058"
group = "App Group" # Windows start menu group
run_on_startup = "everyone"
run_after_setup = true
resources = [
{ Custom = { name = "CustomString", value = "My Info" }},
]
[languages]
languages = ["english","french"]
[firewall]
application = "in:out"
in = [ "bin\\windows-x64\\my-utility.exe" ]
out = [ "bin\\windows-x64\\test.exe" ]
依赖项
~177MB
~3M SLoC