![](/img/trans.png)
[英]Symfony 6 & webpack encore : how use a .env variable from scss files?
[英]symfony / webpack-encore: How can I make colors in .scss to come from an ENV var? What caches have to be rebuilt?
我有一个基于 symfony 5 和 webpack-encore 的项目。
我在生产中运行该项目的多个实例,具有不同的内容。 我创建了一个 docker 映像并在同一个映像上运行许多容器,通过通常配置数据库名称的 ENV 变量设置内容。 不涉及.env.*
文件,仅涉及基于 RAM 的 ENV 变量。
所有克隆的样式表都是相同的。 但是现在我想“调整” SASS 的基础 colors,所有调色板都来自 ENV var。
在我的styles/app.scss
,我现在有这一行:
$primary: darken(#428bca, 20%);
#428bca
依赖于运行容器时设置的运行时 docker 环境变量?yarn encore production
就够了吗? 或者我必须在运行yarn encore
之前运行php bin/console cache:clear
吗? 您可以通过使用 sass-loader 的additionalData
数据选项来做到这一点。 见https://www.npmjs.com/package/sass-loader#additionaldata
您可以将 sass-loader 选项传递给Encore.enableSassLoader()
,所以我猜想 webpack.config.js 中的以下内容应该从您的环境变量动态创建一个$main-color
SASS 变量。
Encore.enableSassLoader({
additionalData: "$main-color: " + process.env.MAIN_COLOR + ";",
})
然后在您的 SASS 代码中,您应该可以执行$primary: darken($main-color, 20%);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.