bar*_*iro 6 environment-variables webpack micro-frontend webpack-module-federation
关于与Webpack捆绑后注入环境变量的问题已经被提出并回答。
答案始终基于在index.html文件中加载更新的环境变量。
但是,当使用Webpack Module Federation时,我们仅公开一个component.js文件,因此如何在该阶段捆绑源代码,但在docker build服务阶段读取环境变量(例如,当我们的捆绑包作为 k8s 内的 pod 运行时)。
Vit*_*ira -2
在 webpack.config 中
const webpack = require('webpack');
require('dotenv').config({ path: './.env' });
Run Code Online (Sandbox Code Playgroud)
然后在插件模块部分添加这个
new webpack.DefinePlugin({
"process.env": JSON.stringify(process.env);
}),
Run Code Online (Sandbox Code Playgroud)
这将从机器中对所有环境变量进行编码。
这种方式还需要另一个改进,这样您可以创建类似.env.development或.env.production
module.exports = (env, args) => {
require("dotenv").config({ path: `./.env.${args.mode}` });
Run Code Online (Sandbox Code Playgroud)
如果您只想传递您在 .env 文件中定义的环境变量,只需将要求更改为:
const dotenv = require("dotenv").config({ path: ./.env.${args.mode}` });
Run Code Online (Sandbox Code Playgroud)
和 DefinePlugin 到此:
new webpack.DefinePlugin({ "process.env": JSON.stringify(dotenv.parsed), }),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5292 次 |
| 最近记录: |