2017-10-09 70 views
1

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

回答

1

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

然后,您可以命名和发布两个版本的scoped packages

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

和:

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

另一种方法是做例如Sequelize确实与它的数据库驱动程序是什么:不取决于任何用户,并且当用户尝试使用特定的驱动程序时,会发出一条消息,指出他们需要先安装该特定的驱动程序包。在您的情况下,如果用户尝试使用某些“完整”功能,但是您检测到他们使用的是“精简版”版本,请显示如何安装完整版本的说明。