Npm链接和共享模块实例

时间:2015-10-06 15:04:52

标签: node.js mongodb mongoose

所以我使用npm链接一次开发多个模块,但它导致我与mongoose连接的问题,因为它没有使用相同的实例。

如果我将我的第二个模块复制到我的主应用程序的node_modules文件夹中,连接按预期工作,如果我通过github安装,问题是如果我执行npm链接,则第二个模块有自己的实例mongoose而不是使用主应用程序中的现有连接。

有没有人知道这方面的解决方法?

2 个答案:

答案 0 :(得分:1)

所以不是完美的解决方案,但我意识到,由于节点将始终检查父目录的node_modules文件夹,如果当前目录中没有node_modules我将所有模块放入同一工作目录和npm在该目录中安装了mongoose和任何其他共享实例模块。

它确实工作正常但需要在父目录上安装npm的手动步骤并从模块node_modules文件夹中删除

请参阅下面我使用的结构

|---workspace
      |-----node_modules -> install mongoose or other shared instance modules
      |-----mainApp
               |------node_modules -> delete mongoose or other shared instance modules
      |-----moduleOne
               |------node_modules -> delete mongoose or other shared instance modules
      |-----moduleTwo
               |------node_modules -> delete mongoose or other shared instance modules

答案 1 :(得分:0)

如果您使用的是peerDependencies,可以试试这个:https://www.npmjs.com/package/npm-dedupe-symlinked-peer-deps

基本上它会将所有共享依赖项链接到主程序包提供的依赖项。