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

C_Z*_*_Z_ 3 webpack dotenv

.env的设置如下:

SECRET_KEY=mysecretkey123
Run Code Online (Sandbox Code Playgroud)

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',
    }),
]

}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的应用程序时,我收到一条错误消息,说我的 api 令牌是 undefined

我知道 dotenv 工作正常,因为在我的应用程序本身中,我可以执行console.log(process.env.SECRET_KEY)并查看我的密钥,但是这似乎不会在我的webpack.config.js文件本身中公开我的环境变量。

有没有办法配置 dotenv-webpack 以允许在webpack.config.js?

r.d*_*lic 5

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

即,只需npm install dotenv添加require('dotenv').config()到 webpack.config 文件的顶部。

  • 噢!我很蠢。谢谢你。我现在就可以睡觉了。 (2认同)