【问题标题】:Angular dynamically swap SASS styles depending on environmentAngular 根据环境动态交换 SASS 样式
【发布时间】:2019-02-10 13:10:46
【问题描述】:

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

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

这是 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 已经修改了文件系统。


更新

  • 我的 constants.scss 被导入到我的根 styles.scss 的顶部
  • 如果我使用上述方法交换特定组件 sass 文件,似乎使用了正确的替换 sass 文件。所以我不确定 webpack 和角度编译器是否以不同的顺序为组件特定的样式表做事

【问题讨论】:

  • 你在哪里添加了文件替换部分?在服务或构建配置中?
  • 嗨@David。这是导致变体的json结构。项目 -> 项目名称 -> 架构师 -> 配置 -> 生产或新配置
  • 你使用的是 Angular 6.1 吗?
  • @David Yup 6.1.5
  • 我刚刚升级到 6.1 进行检查,我也遇到了同样的问题。这可能是一个错误然后github.com/angular/angular-cli/issues/11504github.com/angular/angular-cli/issues/11451

标签: angular webpack sass


【解决方案1】:

您还需要更新 @angular-devkit/build-angular 才能正常工作:

ng update @angular-devkit/build-angular

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-09
    • 2019-11-03
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 2013-09-01
    • 2020-04-07
    • 1970-01-01
    相关资源
    最近更新 更多