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 文件的顶部。
我的.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 文件的顶部。