angular - 通过使用 ng-packagr 向 ng-package.json 添加“资产”,全局样式未应用于 Angular 库
问题描述
我正在开发一个带有故事书的角度库(版本 9.1.11),我想在其中全局添加样式。我知道对于ng-packagr
9.x 及更高版本,作为构建过程的一部分,可以将资产复制到您的库包中以全局添加样式。
"ng-packagr:" "~9.1.5"
已经在我的 package.json 中的 devDependencies 中,所以我没有重新安装它。
我所做的如下:我在global.scss
库的根目录中创建了该文件。我在ng-package.json
目标global.scss
文件中添加了“资产”。global.scss
我在我的文件中添加了样式。我运行了一个 npm run build 将global.scss
文件复制到我的 dist 文件夹中。
之后,我global.scss
文件中的样式不会应用于我的库。
我错过了什么,为什么样式没有在全球范围内应用?以及如何正确使用将样式全局添加到我的库中ng-packagr
?
这是我库中的文件的样子:
这是我的ng-package.json
样子:
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/libs/angular-components",
"assets": ["./global.scss"], <- ADDED HERE
"lib": {
"entryFile": "src/public_api.ts",
"umdModuleIds": {
"color": "color",
"uuid": "uuid"
}
},
"whitelistedNonPeerDependencies": [
"color",
"tslib",
"uuid"
]
}
解决方案
此问题将在 6.4 中通过此PR解决
目前有一种解决方法。
创建一个应用程序让故事书加载到 angular.json
tsconfig.json 需要指向正确的一个。
"storybook": {
"projectType": "application",
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"tsConfig": "tsconfig.json",
"styles": [
// Add your global stylesheets
],
"scripts": []
}
}
}
}
我将它与我的 NX 项目一起使用,它运行良好。
推荐阅读
- maven - 如何强制 maven 使用 pom.xml 中列出的存储库?
- android - 当来自手机的通知也被禁用时,Android Wear 应用程序通知也会被禁用
- python - 在 matplotlib 中以粗体打印字符串变量的更简单方法
- javascript - JavaScript 追加
- firebase - 从 Firebase 模块返回 Axios 数据
- wxpython - 我可以将第一个面板中的 OK 按钮绑定到一个运行的函数并检查是否输入了正确的 id,如果正确,下一个面板是否出现
- azure-devops - 拖动到进行中的 Azure DevOps Sprint Board 时如何自动为自己分配任务
- angular - 路由器事件三元语句中的匹配值
- material-design - Android Material Components 命名空间:MaterialComponents vs Design
- angular - RxJS 间隔,AJAX 请求和减少