переопределить пользовательскую переменную scss внутри другого проекта angular-cli (7) (library) - PullRequest
1 голос
/ 28 июня 2019

У меня есть два угловых проекта: (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 Ответ

2 голосов
/ 28 июня 2019

Давайте предположим, что ваша библиотека предоставляет _library.scss с вашим материалом.
Чтобы импортировать его из вашего приложения, вам необходимо настроить этот путь в angular.json build.options вашего приложения:

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

Затем вы можете @import 'library'; из ваших стилей приложения и вызывать миксины, которые будут включать стили вашей библиотеки, как это делает Angular Material с функцией mat-light-theme:
https://github.com/angular/components/blob/master/src/material/core/theming/_theming.scss

Перед использованием этих микширований (и, возможно, даже перед импортом стилей библиотеки) вы можете настроить переменные, и они будут использованы поверх стандартных.

Могу признаться, что импортирую тематику Material, и после этогоЯ переопределяю некоторые переменные Материала своей собственной :) Счастливого нг-кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...