symfony/webpack encore:如何使.scs中的颜色来自环境变量?需要重建哪些缓存?

symfony/webpack encore:如何使.scs中的颜色来自环境变量?需要重建哪些缓存?,symfony,webpack,sass,environment-variables,webpack-encore,Symfony,Webpack,Sass,Environment Variables,Webpack Encore,我有一个基于symfony 5和网页包encore的项目 我在生产环境中运行了多个项目实例,包含不同的内容。我创建了一个docker映像,并在同一映像上运行了许多容器,通过通常配置数据库名称的ENV变量设置内容。不涉及.env.*文件,只涉及基于RAM的环境变量 所有克隆的样式表都是相同的。但是现在我想“调优”SASS的基本颜色,所有调色板都是从ENV变量派生的 在我的style/app.scss中,我现在有一行: $primary: darken(#428bca, 20%); 如何使428b

我有一个基于symfony 5和网页包encore的项目

我在生产环境中运行了多个项目实例,包含不同的内容。我创建了一个docker映像,并在同一映像上运行了许多容器,通过通常配置数据库名称的ENV变量设置内容。不涉及
.env.*
文件,只涉及基于RAM的环境变量

所有克隆的样式表都是相同的。但是现在我想“调优”SASS的基本颜色,所有调色板都是从ENV变量派生的

在我的
style/app.scss
中,我现在有一行:

$primary: darken(#428bca, 20%);
  • 如何使
    428bca
    依赖于运行容器时设置的运行时docker环境变量
  • 如何从.scss调用环境变量值
  • 更改后,仅再次运行
    纱线安可制作
    是否足够?或者在运行
    纱线安可
    之前,我必须运行
    php bin/console缓存:clear

  • 您可以使用sass加载器的
    附加数据
    选项来完成此操作。看

    您可以将sass加载程序选项传递给Encore.enableSloader(),因此我想webpack.config.js中的类似内容应该从您的环境变量动态创建一个
    $main color
    sass变量

    Encore.enableSloader({
    其他数据:“$main color:”+process.env.main_color+“;”,
    })
    
    然后在SASS代码中,您应该能够执行
    $primary:darken($main color,20%)