将资源与您的角库一起运送 [英] Ship assets with your angular library

查看:0
本文介绍了将资源与您的角库一起运送的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

building an angular components library,正在使用NX工作区。 我正在实现一个文件上传器。此上载器将包含图像(SVG),该图像应包含在库/包中。

我在Internet上找到的所有解决方案都要求库的消费者更新他们的angular.json应用程序部分。对我来说,这是绝对不可能的。以下是我找到的一些解释这一点的资源:

我已经修改了ng-Package.json,添加了assets字段:

{
  "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
  "dest": "../../dist/libs/example-ng-bootstrap",
  "assets": ["./assets"],
  "lib": {
    "entryFile": "src/index.ts"
  }
}

已尝试添加

"targets:build:options:assets": [
  "libs/example-ng-bootstrap/src/assets"
]

到lib angular.json部分(project t.json-NX angular.json V2样式),它根本不会构建。

已尝试以下ng-Package.json配置:

{
  "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
  "dest": "../../dist/libs/example-ng-bootstrap",
  "assets": ["/dist/libs/example-ng-bootstrap/lib/assets"],
  "lib": {
    "entryFile": "src/index.ts"
  }
}

在包含的链接中,它确实解释了如何为您构建一个NX原理图来实现这一点,但是,构建使用此库的应用程序(角度工作空间样式)的任何人都可能无法使用此原理图。

其他人(在GitHub链接中)也提到,一些解决方案仅适用于同一NX工作区内的应用,当然这也对任何人都没有帮助。

我感到困惑的是,为什么由库交付的资产不能开箱即用,或者不修改使用的应用程序。你也可以通过U盘把它们送到……不过,我可以提供一个棱角分明的示意图。

另外,我更愿意通过css设计图标,而不是消费者必须更新自己的文件,但我仍然想知道是否有好的解决方案。

有没有人有专业处理这个问题的经验?

编辑

似乎很难找到如何使用NX构建和发布角度原理图的信息,但this seems to be a useful link

推荐答案

这是我的最终ng-package.json

{
  "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
  "dest": "../../dist/libs/mycompany-ng-bootstrap",
  "lib": {
    "entryFile": "src/index.ts"
  },
  "assets": [
    "./src/assets/**",
    "./src/styles/**",
    "./_bootstrap.scss"
  ]
}

发布dist文件后,例如发布到NPM,我可以引用angular.json

中的资产
"styles": [
  "node_modules/@mintplayer/ng-bootstrap/_bootstrap.scss",
  "src/styles.scss"
],

这篇关于将资源与您的角库一起运送的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆