是否有可能在单个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
和符号链接来玩一些技巧,以及如何方便地同时处理来自两个不同模块的代码。