将MQTT NPM模块导入NativeScript

Import MQTT NPM module into NativeScript

本文关键字:导入 NativeScript 模块 NPM MQTT      更新时间:2023-09-26

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

当我试图要求它时,我遇到了一个问题。

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

com.tns.NativeScriptException:找不到模块:"mqtt",相对至:/app/tns_modules。

我已经验证了mqtt文件夹在我的node_modules文件夹中,并尝试创建一个tns_modules文件夹并将mqtt文件夹复制到那里。

然而,我仍然会犯错误。我试着加载了敲门笑话包,结果加载得很好。

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

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

mqtt.js的第一行是

#!/bin/node...

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

因此,当它加载这个文件来解析它时,它无法解析并返回它不可用。(并非总是解析问题上的最佳错误)

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

只看mqtt库的依赖关系;你在NativeScript上完成这项工作的几率看起来很小。