0

我的节点包当前需要expresslocomotive. 两者都express需要 locomotivecommander

当每个包(expresslocomotive)都需要指挥官时,这将解析为两个不同的文件。根据Node 的文档,该commander包将被执行两次,并且在我的应用程序中将有两个commander包的主副本,每个文件一个。

现在,根据我require.resolve()./node_modules/commander.

然后我应该将commander包(和所有其他重复的包)合并到node_modules我的应用程序根目录的文件夹中吗?

编辑下午 12:58:我还注意到重复的包可能不是同一版本。expresscommander 0.6.1一阵子locomotivecommander 1.0.4。另一个依赖expresslocomotive共享分别是mkdirpat0.3.30.3.4

4

1 回答 1

2

每个软件包在安装时都会在各自的node_modules文件夹中安装自己的依赖项。

例如,express它会有自己的node_modules文件夹,里面有它的特定版本commander,而另一个模块也有它自己的。

确认;

mkdir someNewProject && cd someNewProject
npm install express locomotive

然后查看那些已安装模块的目录结构,如下所示;

ls node_modules/express
ls node_modules/locomotive

您应该注意到它们每个都有自己的node_modules文件夹及其依赖项。因此,我不建议尝试制作通用指挥官包。

于 2012-09-26T20:37:50.393 回答