Issue
Story
I'm developing the AWS Lambda functions and compile the code using webpack
.
I've read some of the articles and it seems that the process.env
variables are auto replaced during compilation. Although it's cool I want to forbid this behaviour.
Why?
Because I'm passing environment variables using AWS Lambda dashboard.
Webpack configuration
const nodeExternals = require('webpack-node-externals')
const webpack = require('webpack')
const path = require('path')
module.exports = {
target: 'node',
entry: path.resolve(__dirname, 'index.ts'),
externals: [nodeExternals()],
devtool: 'inline-source-map',
mode: 'production',
module: {
rules: [{
test: /\.tsx?$/,
use: [{
loader: 'ts-loader',
options: {
experimentalWatchApi: true,
},
}],
}]
},
plugins: [],
resolve: {
extensions: ['.tsx', '.ts', '.js']
},
output: {
filename: 'index.js',
libraryTarget: 'commonjs',
path: path.resolve(__dirname, 'dist')
}
}
Question
Is it possible to forbid the behaviour of replacing the process.env
variables during webpack
compilation?
If yes please help me to achieve this effect.
Solution
mode
option in Webpack configuration enables the replacement of process.env.NODE_ENV
:
development
Sets process.env.NODE_ENV on DefinePlugin to value development. Enables NamedChunksPlugin and NamedModulesPlugin.
production
Sets process.env.NODE_ENV on DefinePlugin to value production. Enables FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin and TerserPlugin.
none
Opts out of any default optimization options
So does webpack -p
CLI option.
In case, the effect of DefinePlugin
on process.env.NODE_ENV
is not desirable, listed plugins should be applied without DefinePlugin
, as the documentation shows for production
and development
modes.
Answered By - Estus Flask
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.