javascript - 将 MQTT NPM 模块导入 NativeScript

标签 javascript node.js telerik nativescript

我正在尝试使用 MQTT npm package作为我正在构建的 NativeScript 应用程序的一部分。

当我尝试要求它时遇到问题。

我的代码使用 var mqtt = require('mqtt'); 如示例所示,但在尝试编译 NativeScript 应用程序时,出现以下错误:

com.tns.NativeScriptException: Failed to find module: "mqtt", relative to :/app/tns_modules.

我已验证 mqtt 文件夹位于我的 node_modules 文件夹中,并且我尝试创建 tns_modules 文件夹并将 mqtt 文件夹也复制到其中。

但是我仍然收到错误。我尝试加载knock-knock-jokes 包并且加载完美。

我使用的是截至 2016 年 4 月 13 日的最新版本的 Node 和 NativeScript(Node 为 4.4.0,NativeScript 为 1.7.1)。

最佳答案

好的,我尝试了一下,看看为什么会发生这种情况。

mqtt.js 的第一行是

#!/bin/node...

这是无效的 JavaScript 代码。 Node 已被编程为忽略它;但 NativeScript 没有。 (可能值得提出增强请求..)

因此,当它加载该文件进行解析时,它无法解析并返回该文件不可用。 (解析问题并不总是最好的错误)

但是,如果您修复该错误,您将遇到更多问题。然后它会提示找不到“net”库。 NativeScript 没有内置的网络库。据我所知,还没有人创建 NativeScript 的网络替代品。因此,在很多情况下,您可以按原样使用 Node 模块;但是如果他们调用任何依赖于内置 Node 库的东西;不幸的是,它们目前无法在 NativeScript 中工作,因为它们不存在等效的库。

就看mqtt库的依赖;乍一看,在 NativeScript 上实现此功能的可能性非常小。

关于javascript - 将 MQTT NPM 模块导入 NativeScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36618160/

相关文章:

javascript - 如何从 ASP.NET 按钮单击关闭模态弹出窗口?

silverlight - 只有登录的用户可以从我们的服务器播放音频

javascript - Mocha 测试.Timeout 2000ms

javascript - 在 ruby​​ 中将输出打印到标准输出时如何使用回调

c# - RadGrid上的筛选不起作用

javascript - 如何让 KendoUI MVC 与内容安全策略配合使用

javascript - 有没有办法进一步压缩这段 JavaScript 代码?

javascript - Chrome 扩展程序 : executeScript after window is loaded

javascript - 当我悬停在 li 上时如何更改 div

javascript - 带有 Coffeescript 和 gulp 的 Node 应用程序