在开发过程中NPM peerDependencies
设定:
包models
- 在多个应用中常用的猫鼬模型
- peerDependencies: “猫鼬”
包app
- 依赖关系:“猫鼬”,“模特”
- 通过
app> npm link models
模型链接
问题:
当开发models
,我需要下node_modules
安装猫鼬,否则就找不到猫鼬。
然而,在使用models
时app
,如果下node_modules
models
存在猫鼬,它使用的不是与app
分享猫鼬的同一个实例该副本。
开发models
时,然后在app
使用时将其删除我在做这个工作,现在的方式是安装猫鼬。我看着parent-require
但这似乎只解决NPM链接不从父,不是这个问题找到包不必删除/安装node_module问题(或我错误地这样做呢?)
相关:Sharing a Mongoose instance between multiple NPM packages
回答如下:我已经采取了使用require.main.require
的require
而不是为那些需要一个共享实例模块。
例如,require.main.require('mongoose')
将保证只有顶级猫鼬被使用。