Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A simple library that combines several node modules into a single file.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 README.markdown
Octocat-spinner-32 embedder.js
Octocat-spinner-32 module.js
Octocat-spinner-32 package.json
README.markdown

This is a simple tool that takes several node modules and combines them into a single file.

This is done by implementing a mini require/define system.

Sample Usage

The best way to explain this is to show a sample usage. Suppose that I have a node script (with dependencies) that I want to run in some node sandbox. I can embed my script and all it's dependencies into a single script and then run that.

var embedder = require('embedder');
var runInNewContext = require('vm').runInNewContext;

embedder({
  // Embed my direct dependency
  "protocol": require.resolve("protocol"),
  // And also it's dependency
  "msgpack-js": require.resolve("msgpack-js"),
  // And my main script
  "client": "./node_modules/client.js",
}, function (err, code) {
  if (err) throw err;
  code += "\nrequire('client');\n";
  runInNewContext(code, {
    require: require,
    process: process,
    Buffer: Buffer,
    console: console
  }, "generated.js");
});

Note that I included my main script as a dependency and then bootstrapped it with a manual require line. This isn't strictly required, but I find it cleaner.

Something went wrong with that request. Please try again.