Skip to content

Neutralino 参考

基于 Neutralino v6.x · 核于 2026-07

速查

  • 定位:系统 WebView + 极薄 C++ 后端,无 Node/Rust/Go 运行时;Hello World 未压缩约 2MB、压缩后约 0.5MB;GitHub ≈8.5k star
  • 平台:Linux / Windows / macOS + 浏览器模式;兼容任意前端框架
  • 通信:本地 WebSocket + accessToken + UUID 任务池配对
  • CLIneu create / run / build --release / update
  • 安全三抓手tokenSecurity=one-time + nativeAllowList + nativeBlockList
  • 四模式:window(默认)/ browser / cloud / chrome

一、定位与坐标

渲染系统 WebView(Linux WebKitGTK / Win WebView2 / macOS WebKit),不打包 Chromium
后端极薄 C++ 二进制 + 内嵌 HTTP 静态服务器
运行时依赖(不需 Node / Rust / Go)
产物体积Hello World 未压缩 ≈2MB、压缩后 ≈0.5MB
平台Linux / Windows / macOS / 浏览器模式
前端框架React / Vue / Angular / Svelte / 原生 JS
社区GitHub ≈8.5k star(较小众)
通信本地 WebSocket + accessToken + UUID 任务池

二、Neutralino.* 命名空间

命名空间作用
app应用管理(退出/重启/广播/读配置/开外部 URL)
window窗口管理(仅 window 模式)
filesystem文件/目录/watcher/权限
os执行命令 / 环境变量 / 对话框 / 通知 / 托盘
computer硬件信息(内存/CPU/显示器/电池…)
storage键值持久化
events事件(on/off/dispatch/broadcast
extensions / custom扩展消息 / 自定义方法
clipboard剪贴板
updater应用自更新
debugdebug.log
resourcesresources.neu

三、常用 NL_* 全局变量

变量含义
NL_OSLinux / Windows / Darwin
NL_ARCHx64 / arm / ia32
NL_APPID / NL_APPVERSION应用 ID / 版本
NL_PORT应用端口
NL_MODEwindow / browser / cloud / chrome
NL_VERSION / NL_CVERSION框架 / 客户端库版本
NL_PATH应用路径(扩展命令用 ${NL_PATH}
NL_RESMODEbundle / directory
NL_EXTENABLED扩展是否启用

四、neu CLI 命令

命令作用
neu create <path>从模板创建应用(--template <acc>/<repo>
neu run开发运行,默认热重载(--disable-auto-reload
neu builddist/--release / --embed-resources
neu update升级二进制与客户端库(--latest
neu version显示版本
neu plugins管理 CLI 插件
bash
npm i -g @neutralinojs/neu
neu create myapp && cd myapp
neu run
neu build --release

五、neutralino.config.json 关键字段

字段说明
applicationId应用唯一 ID
defaultModewindow / browser / cloud / chrome
port0 = 随机(推荐)
url / documentRoot入口 / 静态资源根
enableServer / enableNativeAPI内嵌服务器 / 原生 API 开关
tokenSecurityone-time(推荐)/ none(危险)
nativeAllowList白名单,支持通配('os.*'
nativeBlockList黑名单cloud 模式尤重要)
globalVariables自定义全局变量

子字段名随版本演进,细节以官方 Configuration 为准。

六、四种运行模式

模式形态备注
window(默认)原生 OS 窗口window.* 仅此可用
browser默认浏览器打开能调原生的 Web 应用
cloud后台服务进程务必收紧权限(权限传导给 Web 端)
chromeChrome app 模式需预装 Chrome/Chromium/Edge

七、vs Electron / Tauri / Wails

维度NeutralinoElectronTauriWails
渲染系统 WebView捆绑 Chromium系统 WebView系统 WebView
运行时无(C++ 内核)Node.jsRustGo
体积最小(<2MB)150–200MB远小于 Electron类 Tauri
权限白/黑名单(手动)无强制默认拒绝
门槛纯 JS纯 JS需 Rust需 Go

八、常见易错点

#易错点
1任何 API 前必须先 Neutralino.init()(否则 WS 未连、全局变量未加载)
2Neutralino.window.*window 模式可用
3原生方法默认受 nativeAllowList 限制——没放行会调用失败
4tokenSecurity: 'none' 危险,生产用 one-time
5cloud 模式权限会传导给 Web 端,务必配 nativeBlockList
6依赖系统 WebView → 各平台 CSS/JS 行为差异是常见坑
7扩展进程要读 stdin 拿连接信息(port/token/id)再连回
8无原生 UI 组件、无 Tauri 式强权限模型
9port: 0 用随机端口,别硬编码端口
10代码里用 ${NL_PATH} 等全局变量拼扩展命令路径

九、权威链接