To effectively manage ClearBlade libraries, you will use the ClearBlade Command Line Tool and the cb-dev-kit tool for local development and transpiling NPM packages. Below is a step-by-step guide to achieve this, using the moment-timezone NPM package as an example. You can change the instructions for other NPMs accordingly.
Prerequisites
-
ClearBlade Command Line Tool (cb-cli):
-
Have the latest version installed.
-
-
cb-dev-kit:
-
Have the latest version installed.
-
Steps to import NPM packages
-
Initialize ClearBlade workspace:
-
Choose a folder on your local machine, either blank or a Git/source-control workspace.
-
Run
cb-cli initin the chosen folder. -
Follow the initialization steps, referring to the ClearBlade system where the transpiled code will run.
-
-
Create a dummy library:
-
Use the ClearBlade console to create a dummy library named
MomentTimezonein the system.
-
The transpiled NPM package will replace this placeholder library.
-
-
Pull the library:
-
Pull the library into your local workspace using:
cb-cli pull -library MomentTimezone
-
-
Open the workspace in IDE:
-
Open the local workspace in your preferred IDE (e.g., Visual Studio Code).
-
-
Initialize cb-dev-kit:
-
In the same local workspace folder, run:
cb-dev-kit init
-
-
Install the node module:
-
Install the
moment-timezoneNPM module with the following command:npm i --save moment-timezone
-
-
Create transpiled library:
-
Run the following command to create the transpiled library:
cb-dev-kit create -l MomentTimezone -t tsNOTE: -t means type and can be ts for TypeScript or js for JavaScript.
You may see component name undefined returned to your terminal. Ignore this.
-
-
Locate the new folder:
-
After successful execution, a new folder will appear in the
srcdirectory.
-
-
Modify the JavaScript or TypeScript file:
-
Look at the NPM documentation to find the main object to import. For moment-timezone it is moment.
-
In the new JS or TS file within the
srcfolder, add the following lines at the top and delete any other lines:import moment from 'moment-timezone'; global.moment = moment;
-
-
Build the library:
-
Run the build command:
npm run build:library -library=MomentTimezone
-
-
Push to ClearBlade system:
-
Push the library to the ClearBlade system with:
cb-cli push -library MomentTimezone -
This will upload the library, making it available in the ClearBlade system.
-
Create a test code-service in the system to test the library. Make sure to add the library as a dependency.
For example:function test_moment_timezone(req,resp){ // These are parameters passed into the code service // var params = req.params; // var moment = moment_timezone_lib().moment_timezone(); var june = moment("2014-06-01T12:00:00Z"); log(june.tz('America/Los_Angeles').format('ha z')); // 5am PDT log(june.tz('America/New_York').format('ha z')); // 8am EDT log(june.tz('Asia/Tokyo').format('ha z')); // 9pm JST log(june.tz('Australia/Sydney').format('ha z')); // 10pm EST var dec = moment("2014-12-01T12:00:00Z"); log(dec.tz('America/Los_Angeles').format('ha z')); // 4am PST log(dec.tz('America/New_York').format('ha z')); // 7am EST log(dec.tz('Asia/Tokyo').format('ha z')); // 9pm JST log(dec.tz('Australia/Sydney').format('ha z')); // 11pm EST resp.success("Done"); }
-
By following these steps, developers can import and manage NPM packages as ClearBlade libraries.