我正在使用angular来构建多语言系统,使用angular i18n进行内部化我必须将每种语言构建为不同的包.由于某些语言是RTL,我使用方向scss(而不是导入不同的样式表或在元素上应用class = rtl).
问题是,我不希望在每次构建之前更改代码.我需要在scss变量文件中只更改一个简单的行:
RTL语言的$dir = ltr到$dir = rtl.
是否可以从构建脚本中提取此值或其他内容?这将创建更平滑的构建过程.
最佳答案 我找到了解决方案/解决方法.
>在angular-cli.json中,我定义了2个应用程序:ltr和rtl.
>在样式下,每个应用程序编译2个不同的文件:
> directional-scss.scss和directional-scss-rtl.scss – with
$dir变量设置为正确的值.
> style-ltr.scss和style-rtl.scss – 基本上它们是相同的,但每个都导入正确的方向scss文件.
>在我的package.json文件中,我添加了一个脚本来构建所有:“build-all”:“npm-run-all –parallel build-en build-i18n:he”
>我的构建scipt看起来像这样:“build-en”:“ng build –app = ltr –output-path = dist –aot -prod –bh / –locale = en-US”,注意 – -app = LTR.在其他语言中使用正确的方向进行相同的操作.
多数民众赞成,我现在可以运行这个脚本并构建两种语言!或者在dev和QA的不同端口上同时为它们服务.