Я пытаюсь использовать переменную среды внутри карты импорта, которая используется для конфигурации одиночного спа:
<% if (isLocal) { %>
<script type = "systemjs-importmap">
{
"imports": {
"@polyglot-mf/root-config": "//localhost:9000/polyglot-mf-root-config.js"
}
}
</script>
<% } %>
Но я хочу управлять //localhost:9000/polyglot-mf-root-config.js внутри переменной среды, поэтому мне нужно что-то вроде:
<% if (isLocal) { %>
<script type = "systemjs-importmap">
{
"imports": {
"@polyglot-mf/root-config": process.env.URL_ROOT
}
}
</script>
<% } %>
Я пытался добиться этого, используя непосредственно процесс.env, предварительно объявив переменную и используя ее внутри импорта:
<script type = "systemjs-importmap">
let urlRoot = process.env.URL_ROOT
{
"imports": {
"@polyglot-mf/root-config" : urlRoot ,
}
}
</script>
Но это не работает, выдает ошибку, что процесс не определен.
Есть идеи, как я могу заставить это работать?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Что я сделал, так это отправил переменные среды при запуске микроинтерфейса.
Итак, мой стартовый скрипт npm:
webpack serve --env isLocal --env URL_ROOT = "//localhost:9000/polyglot-mf-root-config.js"
Позже мне нужно изменить свой webpack.config.js, чтобы добавить переменную среды:
return merge(defaultConfig, {
// modify the webpack config however you'd like to by adding to this object
plugins: [
new HtmlWebpackPlugin({
inject: false,
template: "src/index.ejs",
templateParameters: {
isLocal: webpackConfigEnv && webpackConfigEnv.isLocal,
URL_ROOT: webpackConfigEnv && webpackConfigEnv.URL_ROOT,
}
})
],
externals: ["single-spa", "react", "react-dom", /^@SE/.+$/]
});
И, наконец, я могу использовать переменную среды внутри моего файла .ejs:
<% if (isLocal) { %>
<script type = "systemjs-importmap">
{
"imports": {
"@polyglot-mf/root-config": "<%= URL_ROOT %>"
}
}
</script>
<% } %>