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

时间:2014-02-05 01:59:04

标签: node.js express

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

我有一个package.json个文件。是否可以让npm下载两个不同版本的express?

感谢。

1 个答案:

答案 0 :(得分:5)

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

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

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