如何在 angular 项目构建期间替换通配符文件?
How to do a wildcard file replacement during build in angular projects?
我有一个带有 scss 样式的 angular2+ 项目。我的目标是 2 个应用程序:具有相同代码库的移动(离子)和 Web。
由于需要为某些组件加载完全不同的样式表,我正在考虑执行以下操作:为 [=12= 中的每个组件保存 web 样式](无变化),并为 xxx.component.mobile.scss
中的每个组件保存 mobile 样式
我的问题:在构建 angular 项目时,有没有办法用 xxx.component.mobile.scss
文件替换 xxx.component.scss
文件,类似于 angular 对环境文件所做的(如果配置为 dev,则将 environment.ts
替换为 environment.dev.ts
)?
我试过像这样在 angular.json 中使用通配符,但没有成功:
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.dev.ts"
},
{
"replace": "src/**/*.scss",
"with": "src/**/*.mobile.scss"
}
]
有没有办法在 angular 项目的构建过程中替换通配符文件?推荐的方法是什么?
angular.json 不支持此功能。作为解决方法,您可以使用 environment
文件中解析的环境,并相应地替换 .ts 文件中的各个 scss 文件,如下所示:
import { environment } from 'src/environment/envitonment';
isIonic = environment.name === 'ionic';
@Component({
selector: 'app-xxx',
templateUrl: './xxx.component.html',
styleUrls: [ isIonic ? './xxx.component.mobile.css' : './xxx.component.css']
})
我有一个带有 scss 样式的 angular2+ 项目。我的目标是 2 个应用程序:具有相同代码库的移动(离子)和 Web。
由于需要为某些组件加载完全不同的样式表,我正在考虑执行以下操作:为 [=12= 中的每个组件保存 web 样式](无变化),并为 xxx.component.mobile.scss
我的问题:在构建 angular 项目时,有没有办法用 xxx.component.mobile.scss
文件替换 xxx.component.scss
文件,类似于 angular 对环境文件所做的(如果配置为 dev,则将 environment.ts
替换为 environment.dev.ts
)?
我试过像这样在 angular.json 中使用通配符,但没有成功:
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.dev.ts"
},
{
"replace": "src/**/*.scss",
"with": "src/**/*.mobile.scss"
}
]
有没有办法在 angular 项目的构建过程中替换通配符文件?推荐的方法是什么?
angular.json 不支持此功能。作为解决方法,您可以使用 environment
文件中解析的环境,并相应地替换 .ts 文件中的各个 scss 文件,如下所示:
import { environment } from 'src/environment/envitonment';
isIonic = environment.name === 'ionic';
@Component({
selector: 'app-xxx',
templateUrl: './xxx.component.html',
styleUrls: [ isIonic ? './xxx.component.mobile.css' : './xxx.component.css']
})