Angular: 在自定义 angular 库中包含第三方依赖

Angular: Include third party dependency in custom angular library

我正在尝试使用 ng generate library ts-utils 命令将库创建为 npm 包

此库在库的 peerDependencies 部分中使用了名为 memoizee, where we include the library and its respective @types 的依赖项。

注意: 我的包中没有其他地方仅在 package.json

中引用这些依赖项
{
  "name": "@heanfig/ts-utils",
  "version": "1.0.1",
  "description": "Plugin for TypeScript to support custom decorators and functions",
  "peerDependencies": {
    "@angular/common": "^13.2.0",
    "@angular/core": "^13.2.0",
    "@types/memoizee": "^0.4.7",
    "memoizee": "^0.4.15"
  },
  "dependencies": {
    "tslib": "^2.3.0"
  },
  ...
}

当我尝试生成库并将其发布到 npmjs 时,它没有产生任何问题,

当我尝试通过在需要它的项目中安装它来使用它时,它会生成类似这样的警告:

Warning: /Users/hermanfigueroaidarraga/Desktop/@hf/ts-utils-demo/dist/ts-utils/fesm2015/heanfig-ts-utils.mjs depends on 'memoizee'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

另外它告诉我 memoizeeundefined,当我去检查我安装依赖项的项目时,在 node_modules 文件夹中有两个 memoizee 及其 类型

显然存在模块、commonJS 或 umd 类型错误,但无法确定此错误的确切原因,因为我的包找不到依赖项,知道它已正确安装在 node_modules 目录中各自类型

感谢关注

memoizee 及其类型应进入您图书馆的 dependencies 部分。

对等依赖项旨在通过插件进行扩展(例如 @angular/... 依赖项,因为它们是扩展的目标)请参阅此处的文档 https://nodejs.org/es/blog/npm/peer-dependencies/