【发布时间】:2012-09-27 04:37:50
【问题描述】:
我的节点包目前需要express 和locomotive。 express 和 locomotive 都需要 commander 包。
当每个包(express 和 locomotive)都需要指挥官时,这将解析为两个不同的文件。基于Node's documentation,commander 包将执行两次,在我的应用程序中,commander 包将有两个主副本,每个文件一个。
现在,根据我对require.resolve() 的理解,require() 将搜索目录树一直到机器的根目录(或直到用户允许的范围内),并查看每个目录./node_modules/commander 的方式。
然后我应该将commander 包(和所有其他重复的包)合并到我的应用程序根目录下的node_modules 文件夹中吗?
编辑 12:58 p.m.:我还注意到重复的包可能不是同一版本。 express 有commander 0.6.1 而locomotive 有commander 1.0.4。另一个依赖 express 和 locomotive 共享是 mkdirp,分别位于 0.3.3 和 0.3.4。
【问题讨论】: