设置:
打包模型
- 跨多个应用使用的常见 Mongoose 模型
- peerDependencies:“ Mongoose ”
打包应用
- 依赖项:“ Mongoose ”、“模型”
- 通过
app> npm link models
链接到模型
问题:
开发models
时,需要在node_modules
下安装mongoose,否则找不到mongoose。
但是,当在 app
下使用 models
时,如果 mongoose 存在于 models
的 node_modules
下,它会使用那个复制而不是与 app
共享相同的 mongoose 实例。
我现在的工作方式是在开发 models
时安装 mongoose,然后在 app
下使用它时删除它。我查看了 parent-require
但这似乎只解决了 npm link 没有从父级找到包的问题,而不是必须删除/安装 node_module 的问题(或者我正在做这不正确?)
相关: Sharing a Mongoose instance between multiple NPM packages
最佳答案
对于需要共享实例的模块,我已经开始使用 require.main.require
而不是 require
。
例如,require.main.require('mongoose')
将保证仅使用顶级 Mongoose 。
关于node.js - 开发期间的 npm peerDependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25684309/