esbuild-ifdef
This esbuild plugin allows you to include/exclude code from your bundle conditionally on compile time using /// #if
comments.
Installation
npm install esbuild-ifdef
yarn add esbuild-ifdef
Usage
Example:
console.log('production specific code');
console.log('debug specific code');
console.log('something else');
All directives accept any valid javascript expressions.
If blocks can be nested.
/// #if expression
/// #elseif expression
, /// #elif expression
/// #else
/// #endif
/// #warning text
, /// #warn text
- shows up a warning at compile time/// #error text
, /// #err text
- throws an error at compile time
Using plugin
esbuild.build({
entryPoints: ['./index.js'],
bundle: true,
target: 'es6',
outfile: './out.js',
plugins: [
ifdefPlugin({
variables: {
VARIABLE_NAME: 'variable value'
},
})
]
});
Configuration
Name | Type | Default | Description |
---|
verbose | boolean | false | Enabled logging of the included strings and expression results |
fillWithSpaces | boolean | false | Fill removed lines with spaces instead of commenting out |
requireTripleSlash | boolean | true | Require usage of /// before directives |
filePath | RegExp | /\.[jt]sx?/ | File matching RegExp. |
regExp | RegExp | - | Custom parsing RegExp. Overrides requireTripleSlash option. RegExp should have one group named token and one group named expression . Default RegExp for parsing triple slash directives is /\/\/\/[\s]*#(?<token>.*?)(?:[\s]+(?<expression>.*?))?[\s]*$/ |
variables | Record<string, any> | process.env | Variables for the expressions |
License
MIT