#package #nwjs #manifest-file #桌面应用程序 #cargo #cargo 子命令 #安装

app cargo-nw

Cargo 子命令,用于构建 NW 应用程序部署包(可分发版本)的 Windows、MacOS 和 Linux 版本

3 个不稳定版本

0.1.1 2023 年 7 月 28 日
0.1.0 2023 年 7 月 21 日
0.0.0 2022 年 12 月 10 日

#306 in Cargo 插件

MIT/Apache

245KB
6K SLoC

cargo-nw

Node-Webkit 的应用程序部署包构建器

github crates.io docs.rs license

概述

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 库

依赖项

安装

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