发布具有不同依赖关系的npm模块的两个版本

我正在研究分布在两个版本中的节点库:full和lite。 精简版使用比完整版更短的依赖关系列表,并使用两个不同入口点的webpackconfiguration构build它们。 问题是在package.json中只有一个“依赖项”列表,所以即使实际上lite版本不需要很多的依赖关系,当消费者将安装库,他们仍然会获取所有这些依赖项。 有什么办法可以解决这个问题?

我认为你必须创build两个独立的包。 如果可能的话,使“lite”版本成为“完整”版本的依赖,以限制重叠量。

然后,您可以命名和发布两个版本作为范围包 :

"name" : "@your-package/full" 

和:

 "name" : "@your-package/lite" 

另一种方法是实现Sequelize对其数据库驱动程序所做的实例:不依赖任何驱动程序,当用户尝试使用某个特定的驱动程序时,会发出一条消息,指出他们需要首先安装该特定的驱动程序包。 在您的情况下,如果用户尝试使用某些“完整”function,但是您检测到他们正在使用“精简版”版本,请显示如何安装完整版本的说明。