jsccify
v0.1.2
Published
Browserify transform for contitional comments and variable replacement using jscc
Downloads
7
Maintainers
Readme
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!