dotenv-webpack использует переменную среды в webpack.config.js

Мой .env настроен так:

SECRET_KEY=mysecretkey123

Мой webpack.config.js настроен так:

const Dotenv = require('dotenv-webpack');

module.exports = {
...
proxy: {
 'api': {
   target: 'foo.bar'
   headers: {'api_token': process.env.SECRET_KEY}
  }
}
...
plugins: [
    new Dotenv({
      path: '.env',
    }),
]

}

Однако, когда я запускаю свое приложение, я получаю сообщение об ошибке, что мой токен api undefined

Я знаю, что dotenv работает правильно, потому что в самом приложении я могу сделать console.log(process.env.SECRET_KEY) и увидеть свой секретный ключ, однако, похоже, это не раскрывает мои переменные среды в самом webpack.config.js файле.

Есть ли способ настроить dotenv-webpack, чтобы разрешить использование переменных среды в webpack.config.js?


person C_Z_    schedule 17.10.2019    source источник


Ответы (1)


Если вы хотите напрямую использовать переменные из вашего .env файла в webpack.config.js, имейте в виду, что он ведет себя так же, как любой другой файл javascript во время запуска, поэтому вам нужно использовать dotenv прямо в файле конфигурации, а не плагин dotenv-webpack, который вставляет переменные в ваш связанный код.

То есть просто npm install dotenv и добавьте require('dotenv').config() в начало файла webpack.config.

person r.delic    schedule 17.10.2019
comment
Ооо! Я глупый. Спасибо за это. Теперь я смогу поспать. - person Kumar; 12.03.2021