所以我使用npm链接一次开发多个模块,但它导致我与mongoose连接的问题,因为它没有使用相同的实例。
如果我将我的第二个模块复制到我的主应用程序的node_modules文件夹中,连接按预期工作,如果我通过github安装,问题是如果我执行npm链接,则第二个模块有自己的实例mongoose而不是使用主应用程序中的现有连接。
有没有人知道这方面的解决方法?
答案 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
基本上它会将所有共享依赖项链接到主程序包提供的依赖项。