如何在Ionic 2打字稿项目中包含一个普通的js库

时间:2016-08-30 14:13:53

标签: javascript node.js angular typescript ionic2

我见过类似的帖子,但没有人帮助过我。

我有一个离子2项目,我正在使用Typescript 2(beta)

我以为我到了那里,但遗憾的是我觉得我还是不明白Typescript / Browserfy如何协同工作,将实际的js文件包含在Ionic 2版本的app.bundle.js中。

这次我想使用没有类型定义文件的库mqtt。我已经安装了js库并在node_modules中看到它。

接近mqtt.js的末尾(在节点包的package.json文件中列为main属性的文件)我看到一些导出,例如

// Expose MqttClient
module.exports.MqttClient = MqttClient;
module.exports.Client = MqttClient;
module.exports.Store = Store;

// Expose servers
module.exports.Server = MqttServer;
module.exports.MqttServer = MqttServer;
module.exports.SecureServer = MqttSecureServer;
module.exports.MqttSecureServer = MqttSecureServer;

// Expose Connection
module.exports.MqttConnection = MqttConnection;

所以我想在我的一个页面中使用这个MqttClient。

当我构建时,我在app.bubdle.js中看不到这个MqttClient

如果我将node_modules / mqtt / mqtt.js'添加到ionic-gulp-browserify-typescript文件夹index.js中,如下所示

var defaultOptions = {
  watch: false,
  src: ['./app/app.ts', './typings/index.d.ts', 'node_modules/mqtt/mqtt.js' <--- I added this],
  outputPath: 'www/build/js/',

现在,当我查看app.bundle.js时,我确实看到了module.exports.MqttClient = MqttClient;我没有看到MqttServer(所以有些出口进入了app.bundle.js,而不是其他出口!

问题1 是我没有看到所有出口的原因?

问题2 - 最重要的问题是,我现在如何在我的Ionic页面中导入/使用它?

我尝试过添加(如其他地方所建议的)

  declare var MqttClient: any;

然后

let client = new MqttClient();

但MqttClient始终未定义

我是否需要&#34;要求&#34;它使用装载机?我确实认为,因为我们正在使用Typescript / Browserfy,我不需要加载器(例如Systemjs)

任何帮助非常感谢!完全不知道该做什么!

0 个答案:

没有答案