【发布时间】: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/11504,github.com/angular/angular-cli/issues/11451