物語
AWS Lambda関数を開発しており、を使用してコードをコンパイルしていますwebpack
。
いくつかの記事を読みましたが、process.env
コンパイル中に変数が自動的に置き換えられるようです。かっこいいですが、この振る舞いを禁止したいと思います。
どうして?
AWSLambdaダッシュボードを使用して環境変数を渡しているためです。
Webpackの構成
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')
}
}
質問
コンパイルprocess.env
中に変数を置き換える動作を禁止することは可能webpack
ですか?はいの場合、この効果を達成するために私を助けてください。
mode
Webpack構成のオプションにより、次の置換が可能になりますprocess.env.NODE_ENV
。
開発
DefinePluginのprocess.env.NODE_ENVを値開発に設定します。NamedChunksPluginとNamedModulesPluginを有効にします。
製造
DefinePluginのprocess.env.NODE_ENVを値の生成に設定します。FlagDependencyUsagePlugin、FlagIncludedChunksPlugin、ModuleConcatenationPlugin、NoEmitOnErrorsPlugin、OccurrenceOrderPlugin、SideEffectsFlagPlugin、およびTerserPluginを有効にします。
なし
デフォルトの最適化オプションをオプトアウトします
webpack -p
CLIオプションも同様です。
ケースでは、の効果DefinePlugin
には、process.env.NODE_ENV
望ましくない、列挙されたプラグインはせずに適用されるべきDefinePlugin
文書のためのショーとして、production
およびdevelopment
モード。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加