babel-preprocessor

1.0.4 • Public • Published

babel-preprocessor

This is a Babel plugin that adds preprocessor directives to Javascript.

Features:

  • Run code during transpilation
  • Include external Javascript
  • Conditional transpilation
  • Embed values calculated during transpilation into output

Installation

$ npm install babel-preprocessor

Usage

Via .babelrc

.babelrc

{
  "plugins": ["babel-preprocessor"]
}

Via CLI

$ babel --plugins babel-preprocessor script.js

Via Node API

require("babel-core").transform("code", {
  plugins: ["babel-preprocessor"]
});

Syntax

PREP, PREPROCESS

Execute code during transpilation.

Example:
PREP
    console.log('this is executed during transpilation');
    var x = 'variables live in global context';
END

PREP(filename/expression, ...)

Execute code retrieved from the filename(s) specified. If an expression is used it must return a filename.

PREP('include/prep-file.js')

PREP[expr]

Execute the expression within the global context during transpilation. Use this to access variables you have set using DEFINE or PREP.

PREP
var preprocessVariable = 'OK';
END
 
console.log(PREP[preprocessVariable]);

DEFINE(expr, ...)

Define a variable within the transpilation's global context.

DEFINE(x=0, y=1, z=2)
console.log(PREP[x], PREP[y], PREP[z]);

INCLUDE(expr, ...)

Include files as code. If this is used inside a PREPROCESSOR or PREP directive, the file will execute within the transpilation global context. If used outside a PREPROCESSOR directive it will be included in the transpilation output.

INCLUDE("include/common-imports.js")

$INCLUDE(expr, ...)

Include files as a string.

var x = $INCLUDE("include/about.txt", "include/about_footer.txt")
console.log(x);

PROCINCLUDE(command, arguments, options)

Include process output as code. This takes the same parameters as child_process.spawnSync. If this is used inside a PREPROCESSOR or PREP directive, the file will execute within the transpilation global context. If used outside a PREPROCESSOR directive it will be included in the transpilation output.

PROCINCLUDE('echo', [ 'var x = 123' ])

$PROCINCLUDE(command, arguments, options)

Include process output as a string. This takes the same parameters as child_process.spawnSync.

var transpileDate = $PROCINCLUDE('date');
var platform = $PROCINCLUDE('uname', [ '-a' ]);
 
console.log('transpiled at ', transpileDate);
console.log('on platform ', platform);

IF/ELSEIF (expr, ...)

Conditional compilation.

IF (true)
    // this gets included in the output
    console.log('OK!');
ELSE
    // this does not
    console.log('NOT OK!');
END

Readme

Keywords

Package Sidebar

Install

npm i babel-preprocessor

Weekly Downloads

5

Version

1.0.4

License

none

Last publish

Collaborators

  • dfadev