了解如何管理自定义npm库中的依赖项

了解如何管理自定义npm库中的依赖项,npm,package.json,Npm,Package.json,我正试图为一个大型分布式应用程序编写我的第一组npm库,但遇到了有关如何管理依赖关系的问题。Npm有“依赖性”和“对等依赖性”的概念 从我所读到的内容来看,peerDependencies是在您想要编写一个“插件”时需要的,在这个插件中,消费应用程序已经期望在其端部安装依赖项。例如,这可能是为webpack构建插件 然后,库在运行时需要有规则的依赖项。在我的场景中,我试图编写一个库,以将身份验证和授权从消费应用程序中抽象出来。这个新库(我们称它为@myapp/auth)依赖于@auth0/ang

我正试图为一个大型分布式应用程序编写我的第一组npm库,但遇到了有关如何管理依赖关系的问题。Npm有“依赖性”和“对等依赖性”的概念

从我所读到的内容来看,
peerDependencies
是在您想要编写一个“插件”时需要的,在这个插件中,消费应用程序已经期望在其端部安装依赖项。例如,这可能是为
webpack
构建插件

然后,库在运行时需要有规则的依赖项。在我的场景中,我试图编写一个库,以将身份验证和授权从消费应用程序中抽象出来。这个新库(我们称它为@myapp/auth)依赖于
@auth0/angular jwt
库,因为它使用它来处理jwt。我希望这个库从消费应用程序中完全抽象出来,因此不强制消费应用程序手动安装它

话虽如此,听起来我需要将
@auth0/angular jwt
添加到我的库中的
依赖项
,然后将其添加到允许其构建的
whitelistedNonPeerDependencies

这让我很困惑,因为
ng packagr
。如果是这种情况,那么为什么在安装一个较大的库(如
express
)时,只需运行
npm install express--save
,就可以获得
express
的所有依赖项,而无需手动安装每个依赖项

在自定义库中包含您不希望消费应用程序自行安装的包依赖项的正确方法是什么