dotenv-webpack 在 webpack.config.js 中使用环境变量

dotenv-webpack use environment variable in 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 中使用环境变量?

如果您想直接在 webpack.config.js 中使用 .env 文件中的变量,请理解它在 运行 时的行为与任何其他 javascript 文件一样,因此您需要直接在配置文件中使用 dotenv 包,而不是 dotenv-webpack 插件,它将变量插入到你的捆绑代码中。

npm install dotenv 并将 require('dotenv').config() 添加到 webpack.config 文件的顶部。