是否可以在单个node.js项目中使用两个不同版本的npm模块?

Mic*_*ael 7 node.js express

这个问题非常自我解释.在一个项目中,我有多个快递应用程序实例.我想创建一个新的API,它将使用express v3而不是我目前在我的项目中使用的v2.

我有一个package.json文件.是否有可能让npm下载两个不同版本的快递?

谢谢.

Pet*_*ons 5

从技术上讲,鉴于您的限制,您的问题的答案是否定的.npm将package.json在单个node_modules目录中安装给定文件的依赖项,因此文件系统本身将阻止同一目录中存在同一个包的两个版本.但是,有很多变通方法.您可以创建一个简单的shim模块,它仅依赖于express v3并公开express v3模块,然后在需要v3的应用程序部分中使用它.

您还可以执行节点社区文化建议的操作,并将应用程序拆分为一小部分.这是节点中的明显趋势 - 较小的模块更好.Express也很容易,因为它支持在父应用程序中安装子应用程序.

您还可以使用npm link和符号链接来玩一些技巧,以及如何方便地同时处理来自两个不同模块的代码.

  • 对,就是这样.主应用程序的package.json需要expressv2.API的package.json需要expressv3.现在在一天结束时,这是否会在你的脸上爆炸,并导致错误,因为没有人测试混合版本的表达这样?大概.但你可以实现它. (2认同)