Quick StartDocumentationChatIssues GitHub

Interlock.js

Unify your build.

Get StartedOpen on GitHub

A build tool for universal javascript and beyond.

Friendly

All core compilation options can be set through command-line flags. When command-line flags turn cumbersome, Interlock provides a rich JS API and configuration format.

$ ilk build --help

Options:
  --verbose, -v   Compiler verbosity (sent to STDOUT).          [count]
  --config, -c    Path to Interlock config file.                [string]
  --preset        Pull in pre-determined Interlock configuration
                  options.                                      [string]
  --help          Show help                                     [boolean]
  --src           Path to source directory.                     [string]
  --dest          Path to output directory.                     [string]
  --entry, -e     Your application entry point, followed by its output
                  bundle filename.                              [string]
  --split, -s     Your application split point, followed by its output
                  bundle filename.                              [string]
  --ext           Extensions to use for require() resolution.   [string]
  --namespace     Namespace to use for your project.            [string]

[...]

Powerful extensibility

The core of Interlock is very small - many features that Interlock provides are implemented as plugins. All compilation steps are fully documented with an exploratory interface, and plugins tend to be short and sweet.

Interlock makes no distinction between "loaders" and "plugins". Ultimately, both effect the output of the build, and a single API makes for easier-to-understand interactions between your plugins and the compilation.

export default function (opts = {}) {
  const isJsonFile = opts.filter || /\.json$/;
  return (override, transform) => {
    transform("readSource", module => {
      if (isJsonFile.test(module.path)) {
        module = Object.assign({}, module, {
          rawSource: `module.exports = ${module.rawSource};`
        });
      }
      return module;
    });
  };
}

Quick Start

Select your options below, download the TAR file, extract, npm install, and start coding.