Angular 库包依赖项

2024-01-10

我使用 CLI 创建并捆绑了一个 Angular (7.2.0) 库:

ng g 库 MyLibrary

ng 构建 MyLibrary

这给了我my-libary.umd.js我需要的捆绑包。

目前,所有依赖项都作为peerDependency 添加到库package.json 中。我想做的是将一些依赖项与库(.umd)实际捆绑在一起。将它们添加为“dependencies“ 代替 ”peerDependencies“似乎没有什么作用,我真的不明白有什么区别?

我怎样才能做到这一点?

应捆绑 ngx-spinner 的 package.json 示例

{
  "name": "demo-plugin",
  "version": "0.0.1",
  "peerDependencies": {
    "@angular/common": "^7.1.0",
    "@angular/core": "^7.1.0"
  },
  "dependecies": {
    "ngx-spinner": "^7.1.4"
  },
  "bundledDependencies": [
    "ngx-spinner"
  ]
}

你想要的是将它添加到bundledDependencies:

dependencies:当其他人使用您的库时,NPM 会自动安装它们。此处列出的依赖项还需要在 ng-package.json 中列入白名单(“whitelistedNonPeerDependencies”)

peerDependencies:你的库的用户必须安装依赖项(将其添加到他自己的 package.json 中)

bundledDependencies:构建时,依赖项将与您的库捆绑在一起。这也将捆绑所有传递依赖项。如果你想停止这个链,你需要添加不应该捆绑的依赖项peerDependencies。因此,例如,如果您想要捆绑依赖项 A,而它又依赖于 B,那么您将获得包含 A 和 B 的捆绑包。如果您不想捆绑 B,则可以将其添加到peerDependencies.

您拥有的每个依赖项只能同时出现在其中一个依赖项中。因此,要捆绑依赖项,您需要将此依赖项添加到根目录的 package.json (而不是library-package.json)。你不应该做的是跑步npm install在库文件夹内。如果你这样做npm install在库文件夹内,并且根 package.json 中没有捆绑的依赖项(因此根 node_modules 文件夹中缺少它),您将获得成功的构建,但依赖项不会包含在构建中(cli 应该也许暗示这一点..)。

长话短说,针对您的具体问题:

  1. 从library-package.json 的“依赖项”部分中删除“ngx-spinner”
  2. 删除库中的node_modules文件夹(如果那里有的话)
  3. 将“ngx-spinner”添加为 root-package.json 的依赖项
  4. 构建库
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 库包依赖项 的相关文章

  • 使用许多嵌套的 switchMap 是不好的做法吗?

    我有 HTTP 拦截器 在该拦截器中 在更改请求之前 我需要打开一个加载程序 真正让我担心的是我最终会得到很多switchMaps why 加载器是异步的 我还需要将从拦截器传递的消息转换为加载器服务 翻译消息也是异步的 在拦截器中 我应该
  • Mat-table 多行内的多行

    我想要的内容如下图所示 我使用 Angular Material 7 x 并使用 Mat Table 实现 如下所述 https material angular io components table overview https mat
  • Angular Firebase 电子邮件验证验证后错误

    我正在使用电子邮件和密码设置授权功能 一切正常 但当我创建新用户时 应用程序会发送一封带有验证链接的电子邮件 验证电子邮件地址后 我想登录 以便返回登录表单 emial verified 保持在 假 状态 在我硬重新加载页面后 这是 真 但
  • 是否可以使用纯 css 禁用 mat-tab 动画

    我想禁用 Angular Material mat tab 动画 内容滑入到位时发生的动画 我知道可以使用 disabled 属性 但我想知道是否可以使用纯 css 达到相同的效果 EDIT 我们的用户体验团队希望从材质选项卡中删除幻灯片动
  • Angular 7 Guard 重定向仅适用于双击

    问题是我已经实现了一个 Guard 旨在处理特定的目录 如果当前用户名的角色等于 2 它应该返回 true 如果没有 那么它不应该重定向 这是我的 app routing module ts 文件 问题出在 userlist 路径中 我们是
  • 创建本身异步的自定义管道

    我创建了一个自定义管道 用于从 API 检索文本内容 如下所示 Pipe name apiText export class ApiTextPipe implements PipeTransform constructor private
  • Angular + Material - 如何使用 formgroup 处理多个复选框

    我有一个从后端获得的兴趣列表 我希望用户能够选择他们想要的兴趣 我将只存储他们在数据库中检查的兴趣 并在他们加载页面时预先填充 但首先我需要获取用户选择的这些兴趣 兴趣组件 ts export class InterestsComponen
  • 如何将数组数据作为formdata Angular 4发送

    我尝试发布一组数据未发送到服务器 网络服务 deleteCategory return this http post http www demo webapi deletecategory headers Authorization Tok
  • AOT 编译器 - 包括延迟加载的外部模块

    我试图将外部模块 托管在 git npm 存储库中 作为延迟加载模块包含在我的 Angular 应用程序中 我正在使用 ngc 编译器编译我的外部模块 node modules bin ngc p tsconfig aot json 这是我
  • Angular 2:ngModel 输入上“数字”管道的光标问题

    我有一个输入 我想像货币一样显示 我希望只允许两位小数 并且只允许数字 同时在必要时自动添加逗号 基本上 如果用户输入 12345 我希望输入自动显示为 12 345 00 12 345 也可以接受 但如果他们输入 12345 5 则需要显
  • Angular 7 向原语添加扩展方法

    我想向原语添加一些方法 我有以下文件 字符串扩展 ts interface String isNullOrEmpty this string boolean String prototype isNullOrEmpty function t
  • 如何以角度从守卫重定向到子路线

    如何从父路由的守卫重定向到子路由 同时保护子路由不被直接访问 绝对导航的问题当导航到子路由时 父组件上的守卫会在循环中再次调用 相对导航问题是警卫正在保护父路线 因此还没有激活的路线可供导航 此外 这可能不会保护子路由 也许同一个守卫也可以
  • 我们什么时候需要在 Angular2 的服务中使用 @Injectable ?

    All 我对 Angular2 还很陌生 当我到达依赖注入部分时 Injectable 符号让我有点困惑 只是想确保我对 Injectable 的理解是正确的 Injectable 表示它后面的类可以作为服务注入 Injectable 表示
  • 从 firestore 返回嵌套集合作为 angularfire2 和 firebase 的对象

    假设您有以下结构 shopping carts collection shopping cart 1 doc dateCreated field items collection shopping cart 2 doc dateCreate
  • 如何在 Angular4 中上传相同的文件

    我能够成功上传文件 但现在的问题是它不允许我两次上传同一文件 这是我的代码
  • 角度分割列表

    我有一个看起来像这样的列表 A B C 是否有任何简单的方法 而无需创建一个函数 将其展平为一个看起来像这样的数组 A B C 我搜索了 SO 但没有找到任何带有打字稿方法的内容 Thanks 编辑 A B C 是相同类型 看来您正在寻找的
  • Angular2指令修改点击处理

    我正在尝试编写 Angular2 属性指令来修改某些元素的行为 更具体地说 我想将属性应用于具有单击处理程序的某些元素 并防止在某些条件下执行绑定函数 所以现在我有一个元素 例如
  • Angular2 this.route.params.map

    Angular2 我是延迟加载模块并设置子路由如下 in module ts const routes Routes path component ProgramsComponent path create id component Cre
  • 捕获 Angular 2 异常

    如果 Angular 2 遇到内部异常 则不会将其记录到控制台 我怎样才能检测到像下面这样的异常 EXCEPTION Error during instantiation of MainFormComponent ORIGINAL EXCE
  • 如何将现有的 NativeScript Angular 项目转换为代码共享项目

    所有可用的教程都讨论将 Angular Web Apps 转换为代码共享 Nativescript 项目 我想做相反的事情 我几乎用 Nativescript 完成了移动应用程序的编码 现在我想制作一个在两者之间共享代码的 Web 应用程序

随机推荐

  • 无法将依赖项自动连接到自定义验证器中

    我希望使用自定义验证器来验证我的对象属性 并且我需要注入一些 bean 所以我无法自动装配任何 bean 并且出现此异常 java lang NoSuchMethodException com MyValidatorValidator
  • 一起使用 jQuery :has() 和 :contains() 选择器

    我有一个包含标签元素的列表项元素 我想选择列表项元素 has 选择器 标签元素内有我想要匹配的文本 contains 是否可以用一行 jQuery 完成这两件事 如果不是 那么根据子标签元素的内容选择 li 元素的优雅方法是什么 li li
  • onNewIntent() 在手机唤醒之前不会触发

    我发现了一些有趣的行为 但不知道为什么或如何解决它 该活动是一个单任务活动 这意味着 onNewIntent 是针对该活动的 而该活动位于堆栈顶部 这工作得很好 很好 当手机屏幕打开时 然而 一旦屏幕关闭 直到手机 唤醒 并且此时 onNe
  • Angular 2树仅显示根节点

    angular2 tree 库有一个简单的基本用法 example https angular2 tree readme io docs basic usage 但是 当我将其放入我的项目中时 仅渲染根节点 换句话说 树应该有父母 root
  • 不同scanf格式之间的区别[重复]

    这个问题在这里已经有答案了 我目前正在通过阅读教科书为进入编程学校做准备 有一个问题我不明白 课本上也没有给出答案 PS 我在网上学习了一些 C C 但从未参加过正确教授的编程课程 因此我在某些概念上遇到了困难 问 对于以下每一对 scan
  • 同一文件的重复资源警告

    我收到这个相当令人困惑的编译器警告 DCC 警告 W1056 警告 重复资源 类型 14 ICON 集团 ID MAICON 文件 C dev dispense trunk dev source mountaintop dispense M
  • 自定义文本块,将其内容转换为不同的颜色

    我将编写一个自定义文本块来分割其文本内容 它将根据条件使文本具有不同的颜色 并且文本将用逗号分隔 逗号将保持黑色 我不知道如何开始 您能提供启动方面的帮助吗 提前致谢 下面的用户控件使用项目控件以某种随机颜色显示每个标记 Usage
  • 合并2个链表并附加到链表的末尾c ++

    到目前为止我还没有太多 但我正在尝试掌握使用链表的窍门 Struct struct Node int value Node next 如何将节点添加到列表末尾 我只是想获取一个列表头的指针和一个 int 值作为新节点添加 当我尝试运行当前的
  • Numpy 中从一个音高到另一个音高的正弦波滑奏

    我一直在开发一个程序 我需要缓慢而平稳地将正弦波的音调从一个音调更改为另一个音调 我能够获得在任何给定时刻音调应有的频率数组 例如 440 526 5 634 2 794 8 880 尽管更长很多 但似乎我无法实际应用该频率来一波 我最好的
  • 如何从 coverity-scan 中删除项目

    我已经注册了一个项目覆盖扫描 https scan coverity com在过去 我现在想从覆盖扫描中删除该项目 或者至少从我的仪表板上删除该项目 但最好我想完全删除该项目 我被困住了 因为网络界面中似乎没有这样的选项 我错过了什么吗 你
  • RxJS first() for Observable.of() - 序列中没有元素

    对于我的测试 我试图用以下方法模拟事件流Observable of 但当我尝试时 const actions Observable of in the function that is tested actions filter actio
  • VS 2015编译cocos2d-x 3.3错误“fatal error C1189: #error: MacroDefinition of snprintf与标准库函数声明冲突”

    当我使用Visual Studio 2015编译cocos2d x 版本3 3 时 出现错误 说 致命错误 C1189 error snprintf 的宏定义与标准库函数声明冲突 编译源文件 base s3tc cpp 源代码是 ifdef
  • 使用Delphi消费oData服务建议

    我即将启动一个需要 Delphi XE Windows 32 客户端来使用的项目oData http www odata org 网络服务 我可以使用一些粗略和可读的测试代码正确查询服务 但是编写一个框架来处理 oData 协议 所有过滤
  • 如何使用 Kotlin 修复此错误,找不到 Fragment 构造函数?

    我正在开发Android使用 Kotlin 的应用程序 在我的应用程序中包含Tab with ViewPager所以我实现了两个选项卡 当我移动到另一个活动并压缩到选项卡视图活动时 应用程序将停止并且logcat显示下面的错误 java l
  • 如何使用模板创建排序映射整数索引

    我有数据结构 template
  • 使用 C# 删除换行符

    我从名为 Description 的数据库字段获取一个字符串 它有换行符 它看起来像这样 项目标题 此处为描述 这是项目的描述 我怎样才能删除换行符 我尝试了以下功能 但它不起作用 public string FormatComments
  • 设置div动态填充剩余高度?

    所以 我的代码类似于 div style width 100 min height 1 display block background color 000 img src header image svg div div Some con
  • 在 Python 中检测 NUMLOCK / CAPSLOCK / SCRLOCK 按键/按键

    在我正在开发的游戏中 我想检测NUMLOCK keypress or keyup 就像在按下时注册一个 回调 函数 我并不是要求阅读它state在某一特定时刻 我已经可以做到了 https github com MestreLion pyr
  • 有没有办法在设置类的任何属性时调用方法?

    因此 我想做的是在设置 C 类中的任何属性时调用单个 propertyWasSet 函数 相反 在获取属性时调用 propertyWasGot 我还想知道调用了哪个属性的 get 我想维护一个 设置 属性的字典 并检查 获取 操作是否已设置
  • Angular 库包依赖项

    我使用 CLI 创建并捆绑了一个 Angular 7 2 0 库 ng g 库 MyLibrary ng 构建 MyLibrary 这给了我my libary umd js我需要的捆绑包 目前 所有依赖项都作为peerDependency