有没有办法将 NPM 包包含在 Tauri 桌面应用程序中?

问题描述 投票:0回答:2

更多背景知识:我构建了一个 Tauri 应用程序,仅使用 Vanilla Javascript/HTML/CSS 和通常的 Rust 后端。我想包含一个 NPM 包以使我的生活更轻松,但我不知道如何将其集成到我的应用程序中。我读过一些关于“sidecar”的内容,但说实话,Tauri 网站上的文章很难理解。想知道 SO 的任何好心人是否可以为我指出文章或视频的正确方向,甚至是如何工作的代码示例。

谢谢!

到目前为止,我已经尝试过,

npm i serialport
(顺便说一句,这就是我尝试使用的 npm 包)并使用命名导入和默认导入来导入包。我认为这是因为 Tauri 本身并没有像 Web 框架那样融入 Node.js 环境。由于性能和包大小差异,我将此应用程序从 Electron 迁移到 Tauri。

node.js tauri
2个回答
3
投票

只有浏览器 NPM 包可以与 Tauri 一起使用。没有带有 Tauri 应用程序的 Node 运行时来运行依赖项,因此诸如串行端口交互之类的东西都需要是 Rust 库。

您可以使用的唯一 NPM 包用于 Tauri 应用程序的 UI 端,这也意味着它们在浏览器沙箱内运行,因此它们无法对 Web API 之外的系统资源进行本机访问。

这里正确的方法是使用 Rust 库来实现此目的,然后注册调用该代码的 Tauri 处理程序。然后可以使用Events从前端调用它们。也许 serialport-rs 适合您的目的?

理论上,您可以拥有一个 Rust 代码调用的单独 Node 应用程序,但这不符合 Tauri 的精神,也没有按照应有的方式拥抱它。


0
投票

虽然我同意已接受的答案,但只要您只需要客户端/前端功能,只需将 npm 安装的文件夹复制到您的公共文件夹 (src) 中,就可以加载大多数 npm 库因为该库相当独立,并且在其内部引用中不使用绝对路径。 即使如此 - 我猜开源之美 - 您可以继续复制依赖项并自己更新路径。 然后,您可以根据复制的位置链接该文件/引用该模块。

© www.soinside.com 2019 - 2024. All rights reserved.