node-env-webpack-plugin
node-env-webpack-plugin copied to clipboard
Simplified `NODE_ENV` handling with webpack
trafficstars
node-env-webpack-plugin
Simplified
NODE_ENVhandling with webpack
Install
$ npm install node-env-webpack-plugin
Usage
'use strict';
const path = require('path');
+ const NodeEnvPlugin = require('node-env-webpack-plugin');
- const NODE_ENV = process.env.NODE_ENV || 'development';
- const isProduction = NODE_ENV === 'production';
module.exports = {
entry: './source',
output: {
path: path.join(__dirname, 'distribution'),
filename: 'bundle.js'
},
- devtool: isProduction ? 'source-map' : 'cheap-module-source-map',
+ devtool: NodeEnvPlugin.devtool,
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader'
}
]
},
plugins: [
- new webpack.EnvironmentPlugin({
- NODE_ENV: 'development'
- }),
+ new NodeEnvPlugin()
]
};
API
Sets process.env.NODE_ENV in the Node.js process to development at import-time if it's not defined, or production if webpack is run with webpack -p.
NodeEnvPlugin()
Sets process.env.NODE_ENV in the bundle to the same as in the Node.js process.
NodeEnvPlugin.isProduction
For convenience and to prevent typos.
process.env.NODE_ENV === 'production'
NodeEnvPlugin.isDevelopment
process.env.NODE_ENV === 'development'
NodeEnvPlugin.isTest
process.env.NODE_ENV === 'test'
NodeEnvPlugin.devtool
Pass this to the webpack devtool option. It will give you good but slow source maps in production (source-map) and fast source maps in development (cheap-module-source-map).
Related
- add-asset-webpack-plugin - Dynamically add an asset to the webpack graph
- add-module-exports-webpack-plugin - Add
module.exportsfor Babel and TypeScript compiled code
License
MIT © Sindre Sorhus