reactjs - 如何在 webpack 中使用 env?
问题描述
我创建了具有不同值的 .env 和 .env.production 文件:
API=http://localhost:8082/api/
创建的配置:
var config = {};
config.api = process.env.API;
module.exports = config;
我尝试在操作中获取配置,但“api”字段未定义。
const config = require("../config/server");
console.log(config);
我认为需要在启动命令中添加一些东西
"start": "webpack-dev-server --mode development --inline --progress",
"production": "webpack-dev-server --mode production --inline --progress",
但我不确定我应该在这里添加什么。请你帮助我好吗?
解决方案
我使用 dotenv 包和定义插件。
我们首先解析 .env 文件,然后遍历组装对象的值。之后我们将组装好的对象传递给定义插件。定义插件将它们设置为可从您的应用程序访问的全局常量。
const dotenv = require('dotenv');
const fileEnv = dotenv.config({ path: '.env.development' }).parsed;
const envKeys = Object.keys(fileEnv).reduce((prev, next) => {
prev[`process.env.${next}`] = JSON.stringify(fileEnv[next]);
return prev;
}, {});
module.exports = {
...
plugins: [
new webpack.DefinePlugin(envKeys),
],
...
}
推荐阅读
- javascript - 在 Javascript 中拼接数组时出现奇怪的结果
- pandas - 如何找到“非唯一”行?
- vbscript - 关于 AppScript 和 ModScript (Serena) 的文档
- angular - 打开导致问题的 IE 11 开发工具
- sql - 如何在表格中填充错过的日期
- ios - UICollectionViewController 页脚/页眉未显示
- image - Qml Item grabToImage 保存图像错误
- keras - 使用来自分配层的输入数据参数化 Keras(活动)正则化器
- node.js - 参数“数据”不是有效的文档。输入不是纯 JavaScript 对象
- java - Intellij Idea 中的 Java vs JavaFx vs Android SDK