Angular 角度根据环境动态交换SASS样式

Angular 角度根据环境动态交换SASS样式,angular,webpack,sass,Angular,Webpack,Sass,我将Angular 6与新的Angular.json文件一起使用,我在其中配置了一个单独的配置。在这个新配置中,我将常数.scss替换为常数.newconfig.scss 它在运行ng serve--configuration=newconfig时可以正确编译,但由于某些原因,它仍然使用原始的constants.scs 以下是angular.json中生产的默认配置 "configurations": { "production": { ... "fileReplacements":

我将Angular 6与新的Angular.json文件一起使用,我在其中配置了一个单独的配置。在这个新配置中,我将常数.scss替换为常数.newconfig.scss

它在运行ng serve--configuration=newconfig时可以正确编译,但由于某些原因,它仍然使用原始的constants.scs

以下是angular.json中生产的默认配置

"configurations": {
  "production": {
  ...
  "fileReplacements": [
    {
      "replace": "src/environments/environment.ts",
      "with": "src/environments/environment.prod.ts"
    }
  ]
  ...
以下是我补充的内容

"configurations": {
  "production": { ...Prod stuff... },
  "newconfig": {
  ...
  "fileReplacements": [
    {
      "replace": "src/environments/environment.ts",
      "with": "src/environments/environment.newconfig.ts"
    },
    {
      "replace": "src/constants.scss",
      "with": "src/constants.newconfig.scss"
    }
  ]
  ...
这与webpack如何预编译sass有关吗?因此,当Angular替换常量文件时,webpack已经修改了文件系统


更新
  • My constants.scs在My root styles.scs的顶部导入
  • 如果使用上述方法交换特定组件sass文件,则似乎使用了正确的替换sass文件。所以我不确定webpack和angular编译器是否以不同的顺序处理特定于组件的样式表

您需要使用
@angular devkit/构建angular
以及it工作:

ng update @angular-devkit/build-angular

我在哪里添加了文件替换部分?在服务或构建配置中?嗨@David。下面是导致这些变体的json结构。projects->projectName->architect->configurations->production还是NewConfig您使用angular 6.1吗?@David Yup 6.1.5I刚刚升级到6.1进行检查,我也遇到了同样的问题。那可能是个虫子,