在另一个angular-cli(7)(库)项目中覆盖自定义scss变量

时间:2019-06-27 22:50:32

标签: angular sass

我有两个角度cli项目(7) 一个项目,其中包含使用生成的库“核心”

$ng g library core

我使用一个名为“ vars.sidebar.scss”的文件来声明一些变量,例如:

$sidebar-bg: #fff999 !default;

然后我在“ sidebar.components.scss”中使用此文件。

我有另一个项目想要使用第一个项目并修改vars.sidebar.scss中声明的变量。

我不知道该怎么做...

编辑1:


这是我关于核心库的angular.json部分: https://pastebin.com/g2jb4wdy

问题所在,如果我提出选择的话:

"stylePreprocessorOptions": {
  "includePaths": ["libs/core/src/lib"]
}

cli:“ ng build core”告诉我:

    Schema validation failed with the following errors:
    Data path "" should NOT have additional 
    properties(stylePreprocessorOptions).

1 个答案:

答案 0 :(得分:2)

让我们假设您的图书馆在您的资料中公开了_library.scss
要从您的应用程序导入它,您需要将该路径配置到应用程序angular.json的{​​{1}}中:

build.options

然后,您可以"stylePreprocessorOptions": { "includePaths": ["libs/core/src/lib"] } 使用您的App样式,并调用将包含库样式的mixin,就像Angular Material使用@import 'library';函数一样:
https://github.com/angular/components/blob/master/src/material/core/theming/_theming.scss

在使用这些混合之前(甚至可能在导入库样式之前),您可以自定义变量,并将其用于默认变量。

我可能承认我导入了Material主题,然后用我自己的一个覆盖了一些Material变量:) 快乐的ng编码!