项目是基于npmv3+,webpack的,我想知道项目中的第三方包依赖关系,比如A包依赖了B,B依赖了C,C依赖了D,然后node_modules突然会多出一个D,我想知道这个D是由哪个依赖进来的。
最好是基于webpack的,因为有一些语法,比如 import
, require.ensure
有一些是不识别的。
项目是基于npmv3+,webpack的,我想知道项目中的第三方包依赖关系,比如A包依赖了B,B依赖了C,C依赖了D,然后node_modules突然会多出一个D,我想知道这个D是由哪个依赖进来的。
最好是基于webpack的,因为有一些语法,比如 import
, require.ensure
有一些是不识别的。
5 回答3.7k 阅读
5 回答2k 阅读
2 回答659 阅读✓ 已解决
1 回答2.8k 阅读
1 回答2.7k 阅读
1 回答1k 阅读✓ 已解决
2 回答580 阅读✓ 已解决
可以使用
webpack --profile --json > stats.json
生成打包的统计分析文件,包含一些构建和模块依赖的信息,然后上传到这个网站 http://webpack.github.io/anal... 进行分析。这边以分析 react 依赖 object-assgin 为例。
假设 node_module 有 object-assgin,但我们不知道是由于 react 依赖的,我们使用 webpack 生成统计分析文件,然后上传到 http://webpack.github.io/anal... 后可以看到类似下面的界面
点击上图的 modules 链接,进入模块页面,如下所示
上图中的那个网状图代表模块见的相互依赖关系,每个节点是个模块,下面的列表是每一个模块的信息,我们需要在列表中找到 obejct-assgin,如下所示
在上图点击 object-assign 的模块 id —— 绿色的按钮 4,进入 object-assgin 模块的明细信息页面,如下所示
在 object-assign 模块信息页面中找到 issuer(发起者),这个就是有第一个出现依赖 object-assgin 的模块,这里是 react。再往下面看 reasons 就是所有有依赖 object-assgin 的模块,如下所示:
点击 react 可以去分析 react 的模块信息啦
参考 Show your modules tree