jsccify

0.1.2 • Public • Published

npm License

jsccify

Featuring some of the C preprocessor characteristics through special, configurable comments, jscc can be used in any type of files to build multiple versions of your software from the same code base.

With jscc, you have:

  • Conditional inclusion/exclusion of code, based on compile-time variables*
  • Compile-time variables with all the power of JavaScript expressions
  • Replacement of variables inside the source (by value at compile-time)
  • Source Map support

NOTE: This transform is WIP, sourceMap is not supported yet.

jscc is not a minifier tool, it only does well that it does...

jscc is derived on jspreproc, the tiny source file preprocessor in JavaScript, enhanced with Source Map support but without the file importer (browserify does this better).

Install

npm i jsccify -D

Usage

jscc is a preprocessor, please put it first in the chain...

const jsccify = require('jsccify')
 
bundle.transform(jsccify, {
  extensions: ['.js', '.html']
  values: {
    _DEBUG: 1,
    _MYAPP: 'My App'
  }
})
...

Example

/*#if _DEBUG
const mylib = require('mylib-debug');
//#else */
const mylib = require('mylib');
//#endif
 
mylib.log('Starting $_MYAPP v$_VERSION...');

output:

CONST mylib = require('mylib-debug');
 
mylib.log('Starting My App v1.0.0...');

That's it.

* jscc has the predefined _VERSION varname, in addition to _FILE.

Documentation

You can read in the Wiki about:

TODO

This is work in progress, so please update jscc constantly, I hope the first stable version does not take too long.


* For me, write in english is 10x harder than coding JS, so contributions are welcome...

Don't forget to give me your star!

Dependents (0)

Package Sidebar

Install

npm i jsccify

Weekly Downloads

0

Version

0.1.2

License

MIT

Last publish

Collaborators

  • amarcruz