- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建基于 scss 主题的 Angular(ng 11) 库,我将通过私有(private) npm 注册表在单独的项目中使用它。现在我正在尝试将全局 scss 文件添加到我的库中并将其与我的库捆绑在一起。
我想要的:
假设我将我的 scss 保存在 projects/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 Managing assets in library 开始关注这个文档
库 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": {
}
}
进行这些更改后,我面临两个问题:
有人能解释一下我们如何创建一个库,我可以在其中添加 Material 主题和扩展这些主题的应用程序可以使用该主题吗?我尝试了官方文档和其他来源,但没有找到解决方案。
非常感谢任何帮助或引用!
最佳答案
要从您的导入应用程序中获取您的主题 SCSS 文件,您需要;
创建 SCSS
主题文件(您已经完成)
使用 ng-package.json
文件复制 SCSS
Assets
{
...
"assets": [
"./src/styles/_material.scss"
]
...
}
在 package.json
中导出虚拟访问路径(相对于您的库名称)
{
...
"exports": {
"./theming": {
"sass": "./src/styles/_material.scss"
}
}
...
}
从导入/消费应用程序导入主题文件
@import "~@my-lib/theming";
关于angular - 如何使用 ng-packagr 添加 Angular 库的 scss 来打包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66494915/
用ng-packagr打包一个项目@my/common-util时没有问题。此类在 abstract-person.ts 中包含一个名为 AbstractPerson 的抽象类。 在另一个名为@my/
我有一个 Angular CLI 库,其中每个组件只能通过它们各自的入口点(如 Angular Material)导入: import {Foo} from '@myLib/foo import {B
运行命令时 ng-packagr -p ng-package.json 我得到以下输出 Building Angular library - - - skipped 8 lines - - - Sid
在关注 this tutorial 时.This is the error I'm getting.The only difference is that I'm declareing a direc
我关注了this Nikolas LeBlanc 的教程,用于构建 Angular 4 组件库。本教程描述了一种在另一个项目中重用模块的方法,方法是打包一个项目并将其安装到另一个项目中。 首先,这是我
在angular cli项目中,我设法像这样嵌入json 添加到 typings.d.ts declare module "*.json" { const value: any; ex
谁能提示从哪里开始使用 ng-packagr 将图像和 css 文件包含到 Angular 库中? 最佳答案 这是一个旧线程,但仍在使用 2020 年 2 月的最新选项进行更新 使用 ng-packa
我有一个 Angular 工作区 (v10.0.2),其中包含一个库和一个应用程序(用于测试库)。 在我的 projects/libname/src/lib/tsconfig.lib.json 中,我
我使用 Angular cli nggeneratelibrary 创建了一个组件库,以及在模块内使用 *ngIf 的组件。 在我的主项目中成功构建并安装库后,当我尝试使用该组件时,出现 Noprov
我想将 json 文件导入到我的 Angular 5 应用程序中,然后构建一个库。我可以通过包含这段代码来完成第一部分 declare module "*.json" { const valu
我正在使用 Angular CLI 来构建/打包我的组件库,我想从项目的 root 中包含 README.md 而不是项目文件夹中的文件。 所以我想看看构建器是否有任何配置选项,但维基上没有发布任何配
我正在尝试创建基于 scss 主题的 Angular(ng 11) 库,我将通过私有(private) npm 注册表在单独的项目中使用它。现在我正在尝试将全局 scss 文件添加到我的库中并将其与我
我不确定这个问题的真正原因是什么。我认为它是 Typescript,但它可能是 ng-packagr 或 Angular。它仅在我更新到 Angular 9 时才开始。 这是我在生产构建中收到的消息.
我有一个使用 ngrx/store 的 Angular 5 项目。该项目由应用程序和应用程序使用的共享库组成。直到今天,我们一直在为这两个项目一起编译 TypeScript - 该库仅使用 TypeS
我使用 ng-packagr 从 Angular 5 项目创建了 npm 包,现在我正尝试在新项目中安装该包。我将包包含在新项目的 NgModule 中并像这样使用它: 此组件呈现,显示
试图全神贯注地创建一个具有状态 mgmt Ngrx 的 Angular 节点模块。 我一直在使用本指南构建节点模块:https://medium.com/@nikolasleblanc/buildin
我新安装了 windows,我第一次尝试运行 ng-packagr。 我收到错误: Error: Cannot find module '@angular/compiler-cli/src/perfo
我是一名优秀的程序员,十分优秀!