如何跟踪为什么捆绑了节点模块

时间:2019-11-27 17:38:08

标签: webpack

在react / webpack项目中,我有一个包含以下内容的webpack配置

{
    node: false 
}

据我所知,这意味着“不要polyfill核心节点模块”,这可能会在浏览器上下文中被引用。因此,如果某个地方有require('crypto'),我希望它无法构建,而不是例如用node-libs-browser进行填充。

我还通过stats.json分析了webpack-visualizer-plugin,发现软件包buffer是通过node-libs-browser捆绑在一起的,例如我看到npm ls buffer正在运行

└─┬ webpack@4.41.2
  └─┬ node-libs-browser@2.2.1
    └── buffer@4.9.2 

因此,除了我不应该做到这一点的事实之外,我该如何追踪哪个npm模块导致webpack包含了该模块?我是不是简化了对Buffer引用的所有节点模块的探查,还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

对我来说,它可以明确指定node: {buffer: "empty"}。另外请注意,它是"empty"-将其设置为false未能达到目标。