1.0.4-beta • Published 10 years ago

raptor-optimizer-require v1.0.4-beta

Weekly downloads
4
License
Apache License v2...
Repository
github
Last release
10 years ago

raptor-optimizer-require

Plugin for the RaptorJS Optimizer that adds support for transporting Node.js-style modules to the browser.

Installation

This plugin is included as part of the raptor-optimizer module so it is not necessary to use npm install to add the module to your project. However, if you want to use a specific version of the raptor-optimizer-require plugin then you can install it using the following command:

npm install raptor-optimizer-require --save

Usage

This plugin is enabled by default, but if you want to provide your own configuration then you can do that using code similar to the following:

require('raptor-optimizer').configure({
    plugins: {
        'raptor-optimizer-require': {
            transforms: [ // Browserify compatible transforms
                'deamdify'
            ] // See https://github.com/substack/node-browserify/wiki/list-of-transforms
        }
    }
})

The raptor-optimizer-require plugin introduces two new dependency types that you can use to target Node.js modules for the browser. There usage is shown in the following optimizer.json file:

{
    "dependencies": [
        "require: jquery",
        "require-run: ./main"
    ]
}

These new dependency types are described in more detail below.

Dependency Types

require

The require dependency type will wrap a Node.js module for delivery to the browser and allow it to be required from another module. For example:

Input modules:

foo.js:

exports.add = function(a, b) {
    return a + b;
}

bar.js:

var foo = require('./foo'); 

exports.sayHello = function() {
    console.log('Hello World! 2+2=' + foo.add(2, 2));
};

Output Bundles:

After running the following command:

raptor-optimizer require:./foo require:./bar --name test

The output written to static/test.js will be the following:

$rmod.def("/foo", function(require, exports, module, __filename, __dirname) { exports.add = function(a, b) {
    return a + b;
} });
$rmod.def("/bar", function(require, exports, module, __filename, __dirname) { var foo = require('./foo'); 

exports.sayHello = function() {
    console.log('Hello World! 2+2=' + foo.add(2, 2));
}; });

NOTE: $rmod is a global introduced by the client-side Node.js module loader. It should never be used directly!. The code that declares $rmod is not shown in the output above for brevity.

require-run

In the previous examples, neither the foo.js or bar.js module will actually run. The require-run dependency type should be used to make a module self-executing. This is the equivalent of the entry point for your application when loaded in the browser.

Continuing with the previous example:

Input modules:

foo.js (see above)

bar.js (see above)

main.js:

require('./bar').sayHello();

Output Bundles:

After running the following command:

raptor-optimizer require-run:./main --name test

Alternatively:

raptor-optimizer --main main.js --name test

The output written to static/test.js will be the following:

$rmod.def("/foo", function(require, exports, module, __filename, __dirname) { exports.add = function(a, b) {
    return a + b;
} });

$rmod.def("/bar", function(require, exports, module, __filename, __dirname) { var foo = require('./foo'); 

exports.sayHello = function() {
    console.log('Hello World! 2+2=' + foo.add(2, 2));
}; });

$rmod.run("/main", function(require, exports, module, __filename, __dirname) { require('./bar').sayHello(); });
1.0.4-beta

10 years ago

1.0.3-beta

10 years ago

1.0.2-beta

10 years ago

1.0.1-beta

10 years ago

1.0.0-beta

10 years ago

0.1.43-beta

10 years ago

0.1.42-beta

10 years ago

0.1.41-beta

10 years ago

0.1.40-beta

10 years ago

0.1.39-beta

10 years ago

0.1.38-beta

10 years ago

0.1.37-beta

10 years ago

0.1.36-beta

10 years ago

0.1.35-beta

10 years ago

0.1.34-beta

10 years ago

0.1.33-beta

10 years ago

0.1.32-beta

10 years ago

0.1.31-beta

10 years ago

0.1.30-beta

10 years ago

0.1.29-beta

10 years ago

0.1.28-beta

10 years ago

0.1.27-beta

10 years ago

0.1.26-beta

10 years ago

0.1.25-beta

10 years ago

0.1.24-beta

10 years ago

0.1.23-beta

10 years ago

0.1.22-beta

10 years ago

0.1.21-beta

10 years ago

0.1.20-beta

10 years ago

0.1.19-beta

10 years ago

0.1.18-beta

10 years ago

0.1.17-beta

10 years ago

0.1.16-beta

10 years ago

0.1.15-beta

10 years ago

0.1.14-beta

10 years ago

0.1.13-beta

10 years ago

0.1.12-beta

10 years ago

0.1.11-beta

10 years ago

0.1.10-beta

10 years ago

0.1.9-beta

10 years ago

0.1.8-beta

10 years ago

0.1.7-beta

10 years ago

0.1.6-beta

10 years ago

0.1.5-beta

10 years ago

0.1.4-beta

10 years ago

0.1.3-beta

10 years ago

0.1.2-beta

10 years ago

0.1.1-beta

10 years ago

0.1.0-beta

10 years ago