Я пытаюсь создать библиотеку Angular (ng 11) на основе scss-тем, которую я буду использовать в отдельных проектах через частный реестр npm. Прямо сейчас я пытаюсь добавить глобальный файл scss в свою библиотеку и связать его с моей библиотекой.
Что я хочу:
скажем, я храню свой scss в проектах / my-lib / src / styles / _material.scss:
// Import library functions for theme creation.
@import '~@angular/material/theming';
// Include non-theme styles for core.
@include mat-core();
// Define your application's custom theme.
$primary: mat-palette($mat-indigo);
$accent: mat-palette($mat-pink, A200, A100, A400);
$theme: mat-light-theme($primary, $accent);
// Include theme styles for Angular Material components.
@include angular-material-theme($theme);
Я хочу, чтобы мой пакет (пакет библиотеки) содержал этот scss, чтобы после установки этого библиотечного приложения можно было импортировать его в свой глобальный файл style.scss.
проекты / мое приложение / src / style.scss
@import 'my-lib/_material.scss'
Что я сделал:
Я следил за этой документацией из angular Управление активами в библиотеке
библиотека package.json (для простоты я сохранил файл scss вне папки src прямо сейчас):
{
"$schema": "./node_modules/ng-packagr/package.schema.json",
"name": "ui-sdk",
"version": "0.0.1",
"ngPackage": {
"assets": [
"CHANGELOG.md",
"./styles/material.scss"
],
"lib": {
"entryFile": "src/public-api.ts"
}
},
"peerDependencies": {
"@angular/common": "^9.0.6",
"@angular/core": "^9.0.6",
"tslib": "^1.10.0",
"ng-packagr": "^11.2.4"
},
"dependencies": {
}
}
После внесения этих изменений я столкнулся с двумя проблемами:
- ng build добавляет пакет библиотеки в проекты / my-lib / dist
- пакет библиотеки не содержит папки библиотеки (my-lib), поэтому не может определить путь.
Может ли кто-нибудь объяснить, как мы можем создать библиотеку, в которую я могу добавлять темы, а приложение, которое расширяет эти темы, может использовать эту тему? Я пробовал официальные документы, а также другие источники, но не нашел решения.
Любая помощь или ссылка будут очень признательны!