我正在编写一个用于捆绑程序的库(cli工具)。我想支持所有三个主要的捆绑器:Webpack,Parcel和Rollup。
我正在考虑在package.json
中将它们中的每一个都指定为对等依赖项,然后接受参数--webpack
,--parcel
或--rollup
。我会在文档中写道,您需要安装其中之一,然后将其指定为参数。
唯一的“问题”似乎是npm会给您警告已卸载对等依赖项,我想知道这是否是不良的用户体验。有没有更好的方法可以做到这一点,而我却不知道呢?
答案 0 :(得分:2)
由于要构建的工具需要或多或少的特定版本的webpack&co。无论如何,您都可能希望将它们与自己的工具捆绑在一起。
这样,您将没有未解决的对等依赖项,并且您的用户只需添加一个依赖项,而不是多个依赖项。另外,他们保证一切都会正常进行。
当然,OTOH意味着每次都安装一堆软件包,尽管其中大多数不需要。这是不利的一面。从我个人的角度来看,保证工作正常比下载较小的文件更为重要,但YMMV。