最终发现这个question,女巫带我到解决方案。
它说要在.angular-cli.json
中创建多个不同.scss
文件的应用程序。
步骤1: 与.scss
文件为每个环境中创建多个文件夹,所有的.scss
文件具有相同的文件名:
|- src
...
|- environments
|- app1
|- scss
|- globalVars.scss
|- environment.dev.ts
|- environment.prod.ts
|- app2
|- scss
|- globalVars.scss
|- environment.dev.ts
|- environment.prod.ts
...
在SRC /环境
/APP1/SCSS/globalVars.scss: $ profile:'app1'。
in src/environments/app2/scss/globalVars.scss: $ profile:'app2'。
步骤2:
添加多个应用在.angular-cli.json
(Angular-cli Wiki Here ),并添加在每个应用程序对象stylePreprocessorOptions
条目 每个环境(Angular-cli Wiki Here)。
"apps": [
{
...
"name": "app1",
"environments": {
"dev": "environments/app1/environment.dev.ts",
"prod": "environments/app1/environment.prod.ts"
},
"stylePreprocessorOptions": {
"includePaths": [
"environments/app1/scss"
]
}
...
},
{
...
"name": "app2",
"environments": {
"dev": "environments/app2/environment.dev.ts",
"prod": "environments/app2/environment.prod.ts"
},
"stylePreprocessorOptions": {
"includePaths": [
"environments/app2/scss"
]
}
...
},
...
],
步骤3:
导入globalVars.scss
其中env-特异性变量需要。 请勿使用相对路径!
@import "globalVars";
当使用ng build --app=app1
,所述$profile
将'app1'
等。
步骤4: 在我theme.scss
我使用的变量是这样的:
.my-style {
@if $profile == 'app1' {@include angular-material-theme($theme-app1);}
@if $profile == 'app2' {@include angular-material-theme($theme-app2);}
&.contrast {
@include angular-material-theme($theme-contrast);
}
}
如何从另一个css文件覆盖与本地存储的副本CSS值在每个环境:进口网址(“department_store。 CSS“);对sass不确定,但我认为他们使用include。 – numbtongue