node package manager


Utilize modules-webmake to auto bundle all CommonJS/Node.js pacckages for web browser


Auto bundle CommonJS/Node.js packages for web browsers.

Webassemble utilize Webmake to automatically bundle all CommonJS/Node.js packages to share them for the browser.

The reason of building this is that Webmake needs an JS package as entry point whose exported properties can be shared to the browser and so the responsibility of Webassemble is to automatically collect all exported properties from all JS packages you would like to share to browser as the input for Webmake. You can think of Webassemble is the preprocessor for Webmake.

For example, I have two utility classes would like to share between my Node.js application and browser processing.


'use strict';
var StringUtil = require('./string-util.js').StringUtil;
var DateUtil = (function () {
    return {
        getDatefunction (date) {
            if (StringUtil.isBlank(date)) {
                return null;
            return date.split(' ')[0];
exports.DateUtil = DateUtil;


'use strict';
var StringUtil = (function () {
    return {
        isBlankfunction (str) {
            return str === null || typeof(str) === 'undefined' || str.length === 0;
exports.StringUtil = StringUtil;

If I use the date-util.js as input for Webmake, only DateUtil will be exported. If I would like to export StringUtil too, I need to explicitly write a dummy package to requre and export both DateUtil and StringUtil.

Webassemble is made to write the dummy package for you.

Let's say if you would like to export above two packages to a file named bundles.js, you can execute below command:

$ webassemble date-util.js string-util.js bundles.js

It will generate a preprocess file as below. This file is actually the input file for Webmake.

exports.DateUtil = require('./date-util');
exports.StringUtil = require('./string-util');
$ npm install -g webassemble
$ webassemble <input> <output> [options]

input - JS package files to be included in the preprocess file for Webmake. Can be multiple.
output - Output filename.
options - All options Webmake can accept and some extra options listed below.

Only return the preprocess file content without

Only write the preprocess file content without calling webmake

If no destFile is provided or returnContentOnly is set to be true, the preprocess file content will be returned.

As it returns a Promise object, end() must be called to end the promise chain.

webassemble(srcFiles, destFile[, options]).end();

Please check Gruntfile.js for sample usage.


$ npm test