在我们的库中,如何告诉webpack跳过依赖关系?

我们有一个传统的客户端库。 它使用HTTP请求(或其他一些依赖库)来进行REST调用。 使用库时,用户将使用特定的请求提供程序进行初始化,然后closures它们。

我们在我们的例子中使用webpack来利用我们的库。

现在将其扩展为使用节点获取,所以如果有人想从支持的nodejs使用它。

对于使用webpack的人来说,webpack现在试图打包node-fetch,并且require调用在浏览器中失败。 我们可以通过设置外部来解决这个问题

"externals" : { "node-fetch": "{}" } 

有没有一种方法来定义我们的库,以便如果消费者正在使用webpack target:web,它会跳过需要检查节点获取? 同样,如果消费者正在使用webpack target:nodejs,则需要包含节点获取组件。

有问题的项目是https://github.com/OfficeDev/PnP-JS-Core

感谢您报告这一点。 因此,根据此链接的提交和对话 ,自动模块parsing字段(也称为webpackparsing器实例的described-resolveparsing)根据您的目标是什么而改变。

默认情况下,当目标是你的webpack构build中的node时,package.json字段中的parsing将默认main字段,否则默认情况下, browser字段优先。

更多参考https://github.com/webpack/webpack/issues/151