UNPKG

node-env-webpack-plugin

Version:
75 lines (52 loc) 1.75 kB
# node-env-webpack-plugin > Simplified `NODE_ENV` handling with [webpack](https://webpack.js.org) ## Install ```sh npm install node-env-webpack-plugin ``` ## Usage ```diff import path from 'node:path'; + import NodeEnvPlugin from '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](https://github.com/sindresorhus/add-asset-webpack-plugin) - Dynamically add an asset to the webpack graph