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

这个问题很自我解释。 在一个项目中,我有多个快速应用程序实例。 我想创build一个新的API,它将使用Express v3,而不是我目前在我的项目中使用的v2。

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

谢谢。

从技术上讲,考虑到你的限制,你的问题的答案是否定的 。 npm将把一个给定的package.json文件的依赖关系安装在一个node_modules目录下,这样文件系统本身就会阻止相同目录下的同一个包的两个版本。 但是,有很多解决方法。 您可以创build一个简单的shim模块,它只依赖于express v3,并且暴露了express v3模块,然后在需要v3的应用程序部分使用它。

您也可以做节点社区文化build议,并将您的应用程序分成小部分。 这是节点的明显趋势 – 更小的模块更好。 Express也使得这非常简单,因为它支持在父应用程序中安装一个子应用程序。

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