Skip to content
A Node.js IIFE generator for
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Build Status Version npm version

IIFE generator

A Node.js IIFE generator for

The generator is available online on

Documentation is available on

IIFE (Immediately-invoked Function Expressions) is a coding pattern for loading a script. An IIFE can be used in the browser safely.

The IIFE can be optmized using Google Closure Compiler with Advanced Optimizations for optimal compression.

The Node.js module can be executed as a CLI program from the command-line.


npm install



The provided iife-cli.js script can be used from the command-line. The NPM package contains a npm run iife script.


Display usage information and a list with available modules.

npm run iife -- --help


The following command shows how to create an IIFE with unary format, output to path/to/iife.js and with 3 modules that automatically load the required dependencies.

npm run iife --  --format unary --compress --output path/to/iife.js --modules css-loader,localstorage,timing

Short flags and a space separated module list are supported.

npm run iife --  -f unary -c -o path/to/iife.js -m "css-loader localstorage timing"

When omitting the --output flag the script is printed to the console, e.g. for > output.js.

Node.js module

// load Node.js module
const iife = require('');

// return script text for inlining
// uses memory-cache @link
iife.generate(['css-loader', 'timing'], {
   debug: true, // debug sources
   format: 'unary' // !function(){ ... }()
}).then(function(iife_script) {
   // iife_script contains the IIFE script text


// output to file
iife.generate(['css-loader', 'timing'], {
   compress: true, // Google Closure Compiler API compression
   format: 'wrap', // (function(){ ... })()
   output: 'path/to/iife.js',
   output_stats: true // return { modules:[], size:0, gzip_size:0 }
}).then(function(stats) {
   // iife.js written


The Node.js module can be used efficiently within a Node.js CMS. IIFE's are cached in memory using memory-cache.

Warning: the generator depends on the free Google Closure Compiler API that may not be 100% reliable. When using the generator in production it may be an option to use a local Google Closure Compiler service.

You can’t perform that action at this time.