我正在重构一些Angular(7)组件,并且我不知道是否存在一些最佳位置来放置通用scss样式以在许多组件的styleUrls中引用它。
在重构之前,scss都是全局的,必须进行构建才能在不同的应用程序之间使用。现在,大多数scss已被封装,需要尽可能少的全局样式。 但是,由于它们影响已知数量的组件,因此我仍然可以借鉴一些全球性的scss。为此,我在所有这些组件的根目录中提取了scss,并在styleUrls中的每个单独的组件scss之前引用了它。 (使用this article中的一些结构技巧)
这是需要controls.component.scss
styleUrls: ['../controls.component.scss','./autocomplete.component.scss']
结构看起来像这样:
LibName1
src
assets_source
global_styles
_global-files.scss
main.scss
lib
controls
control1
control2
control2.component.html
control2.component.scss
control2.component.ts --> here is the styleUrls
...
controls.component.scss --> the file I'm using to store cross-components style,importing in styleUrls.
到目前为止,一切正常。当我想在此应用程序之外使用此相同的scss文件(controls.component.scss)时,就会出现问题。我们的项目和库的更高级结构如下所示:
ProjectName
src
app
components
component1
component1.html
component1.scss
component1.ts --> Where I want to refer to the controls.component.scss in the styleUrls
component2
...
libs
LibName1 --> The LibName1 from the previous structure example
我希望能够在不同组件内使用文件controls.component.scss中的样式,而无需构建lib并在主项目中引用其css。我愿意将此文件移动到其他地方,而我所希望的是不必管理超级贵族相对路径。 我想知道这种情况下的最佳做法是什么。