Как запретить замену переменных process.env во время компиляции в веб-пакете? - PullRequest
0 голосов
/ 16 декабря 2018

История

Я занимаюсь разработкой функций лямбда-AWS и компилирую код, используя webpack.

Я прочитал некоторые статьи, и кажется,что переменные process.env автоматически заменяются во время компиляции.Хотя это круто, я хочу запретить такое поведение.

Почему?

Поскольку я передаю переменные среды с помощью панели управления AWS Lambda.

Конфигурация веб-пакета

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?Если да, пожалуйста, помогите мне достичь этого эффекта.

1 Ответ

0 голосов
/ 16 декабря 2018

mode опция в конфигурации Webpack позволяет заменять process.env.NODE_ENV:

development

Устанавливает process.env.NODE_ENV в DefinePlugin в значениеразвитие.Включает NamedChunksPlugin и NamedModulesPlugin.

production

Устанавливает process.env.NODE_ENV в DefinePlugin для определения стоимости продукции.Включает FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin и TerserPlugin.

none

101 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *.1022 * CLI option
.

В случае, если влияние DefinePlugin на process.env.NODE_ENV нежелательно, перечисленные плагины должны применяться без DefinePlugin, как показано в документации для *Режимы 1030 * и development.

...