Strip Loader
Simple Webpack loader to strip custom functions from your code. This can be useful if you want to use debug statements while developing your app but don't want this info exposed in your production code.
Install
npm install --save-dev strip-loader
Usage
In your client js source files:
var debug = require('debug')('MyFile');
var makeFoo = function () {
debug('makeFoo called');
debug('makeFoo args', arguments);
return 'Foo';
};
Single function
In your webpack config:
{
module: {
loaders: [
{ test: /\.js$/, loader: "strip-loader?strip[]=debug" }
]
}
};
Multiple functions
In your webpack config:
{
module: {
loaders: [
{ test: /\.js$/, loader: "strip-loader?strip[]=debug,strip[]=console.log" }
]
}
};
Use as library
In your webpack config:
var WebpackStrip = require('strip-loader');
var webpackConfig = {
module: {
loaders: [
{ test: /\.js$/, loader: WebpackStrip.loader('debug', 'console.log') }
]
}
};
Replace unused module
So far we've removed the calls to the debug function, but your app still requires the debug
module in the final bundle. Use the NormalModuleReplacementPlugin
to replace it with an empty function:
{
plugins: [
new webpack.NormalModuleReplacementPlugin(/debug/, process.cwd() + '/emptyDebug.js'),
]
}
module.exports = function() { return new Function(); };
License
This software is free to use under the Yahoo! Inc. BSD license.
See the LICENSE file for license text and copyright information.