@peterjc wrote:
Hi, I think I still sadly still don't understand how typescript/browserfy work together to include the actual js files into app.bundle.js in the Ionic 2 build.
This time I want to use a library that has no type definition file (mqtt.js). I have installed the js library and see it in the node_modules.
Within the node_modules/mqtt/lib.client.js file, there is an export at the end...
module.exports = MqttClient;
So I want to use this MqttClient in one of my pages.
After Building the app, when I look into
app.bundle.js
I do not seeMqttClient
anywhere.In
tsconfig.json
I have attempted to include the above file.."filesGlob": [ "**/*.ts", "!node_modules/**/*", "node_modules/mqtt/lib/client.js" <- added this ],
but I still don't get it.
I thought that browserfy would scan the node_modules and read each package,json file, but now not so sure.
Can anyone shine some light on how I can include just the pure js libraries, and then how to import and use them in my typescript files. I have searched for hours looking for this but to no avail.
Thanks in advance for any help![UPDATE]
I added'node_modules/mqtt/mqtt.js'
intoionic-gulp-browserify-typescript folder index.js
as belowvar defaultOptions = { watch: false, src: ['./app/app.ts', './typings/index.d.ts', 'node_modules/mqtt/mqtt.js'], outputPath: 'www/build/js/', ....
At the bottom if the library file, mqtt.sj, we have the following
// 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;
Now when I look into
app.bundle.js
I do seemodule.exports.MqttClient = MqttClient;
I do not seeMqttServer
I still don't seem to be able to import this into my .ts page file though, so still not sure what to do here.
I can add
///<reference path="../../../node_modules/mqtt/mqtt.js" />
and this seems to resolve ok, but I cannot find how to import,,e.g.
import * as mqtt from 'mqtt/mqtt';
typescript reports "'cannot find module mqtt/mqtt".If I try something like
let client = new MqttClient();
MqttClient
is always undefined.Also, is the above the correct place to add js files?
Posts: 1
Participants: 1