在Angular中将影响所有多个应用程序中多个组件的scs放在哪里?

我正在重构一些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。我愿意将此文件移动到其他地方,而我所希望的是不必管理超级贵族相对路径。 我想知道这种情况下的最佳做法是什么。

ou562970340 回答:在Angular中将影响所有多个应用程序中多个组件的scs放在哪里?

要为您的应用程序使用global,只需将所有内容放入您的style.scss中,它将影响整个应用程序样式

如果要从库中导入scss文件,只需这样做

@import "~bootstrap/scss/bootstrap";
@import "~toastr/toastr";
@import "~font-awesome/scss/font-awesome";

只需使用~从node_modules文件夹导入scss文件

本文链接:https://www.f2er.com/3163715.html

大家都在问