这个问题非常自我解释。在一个项目中,我有多个快递应用程序实例。我想创建一个新的API,它将使用express v3而不是我目前在我的项目中使用的v2。
我有一个package.json
个文件。是否可以让npm下载两个不同版本的express?
感谢。
答案 0 :(得分:5)
从技术上讲,根据您的约束,您的问题的答案是否。 npm将在单个package.json
目录中安装给定node_modules
文件的依赖项,因此文件系统本身将阻止同一目录中存在同一程序包的两个版本。但是,有很多变通方法。您可以创建一个简单的shim模块,它只依赖于express v3并公开express v3模块,然后在需要v3的应用程序部分中使用它。
您还可以执行节点社区文化建议的操作,并将您的应用程序拆分为一小部分。这是节点中的明显趋势 - 较小的模块更好。 Express也很容易,因为它支持在父应用程序中挂载子应用程序。
您还可以使用npm link
和符号链接播放一些技巧,以及如何方便地同时处理来自两个不同模块的代码。