我见过类似的帖子,但没有人帮助过我。
我有一个离子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)
任何帮助非常感谢!完全不知道该做什么!