# webpack-conditional-loader
**Repository Path**: mirrors_arcanis/webpack-conditional-loader
## Basic Information
- **Project Name**: webpack-conditional-loader
- **Description**: C conditionals directive for JavaScript
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-24
- **Last Updated**: 2026-08-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# webpack-conditional-loader
Inspired by [C conditionals directive](https://gcc.gnu.org/onlinedocs/gcc-3.0.2/cpp_4.html),
conditional loader decides if a given block should be included in the final bundle.
Useful for removing instrumentation code and making your final production bundle smaller (therefore
faster).
## Installation
```bash
npm install --save-dev webpack-conditional-loader
```
## Usage
### In your `webpack.config.js`
Put `webpack-conditional-loader` as the last loader in the array, so it will process the code before
all others.
```js
module: {
rules: [{
test: /\.js$/,
use: ['babel-loader', 'webpack-conditional-loader']
}]
}
```
Get an example config file [here](https://github.com/caiogondim/webpack-conditional-loader/blob/master/webpack.js)
### On your code
Use `// #if expression` and `// #endif` to wrap blocks of code you want to be removed if a given
predicate is false.
```js
// #if process.env.NODE_ENV === 'DEVELOPMENT'
console.log('lorem')
console.log('ipsum')
// #endif
```
In the example above, the code will be removed if the enviroment variable `NODE_ENV` is not
`DEVELOPMENT`, removing unnecessary code from your production bundle.
The same technique can be used to prevent loading packages in the production bundle.
```js
// #if process.env.NODE_ENV !== 'BUILD'
import reduxLogger from 'redux-logger'
// #endif
```
You can pass variables as options to the loader:
```js
// webpack.config.js
module: {
rules: [{
test: /\.js$/,
use: [
'babel-loader',
{
loader: 'webpack-conditional-loader',
options: {
isReady: true
}
]
}]
}
```
```js
// myFile.js
// #if isReady
console.log(`I'm ready!`)
// #endif
```
## Credits
- [GCC C conditional documentation](https://gcc.gnu.org/onlinedocs/gcc-3.0.2/cpp_4.html)
---
[caiogondim.com](https://caiogondim.com) ·
GitHub [@caiogondim](https://github.com/caiogondim) ·
Twitter [@caio_gondim](https://twitter.com/caio_gondim)