Quantcast
Channel: Ionic Forum - Latest topics
Viewing all articles
Browse latest Browse all 70860

How to include a plain js library in Ionic 2 typescript project

$
0
0

@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 see MqttClient 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'into ionic-gulp-browserify-typescript folder index.js as below

var 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 see module.exports.MqttClient = MqttClient; I do not see MqttServer

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

Read full topic


Viewing all articles
Browse latest Browse all 70860

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>