node.js - 开发期间的 npm peerDependencies

标签 node.js npm

设置:

打包模型

  • 跨多个应用使用的常见 Mongoose 模型
  • peerDependencies:“ Mongoose ”

打包应用

  • 依赖项:“ Mongoose ”、“模型”
  • 通过app> npm link models链接到模型

问题:

开发models时,需要在node_modules下安装mongoose,否则找不到mongoose。

但是,当在 app 下使用 models 时,如果 mongoose 存在于 modelsnode_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/

相关文章:

node.js - bcrypt@5.0.0 安装脚本失败

npm - 单个 session 中的 Ansible npm 安装列表

javascript - 即使函数有返回值,Nodejs也会在控制台上显示未定义

javascript - 对 xxHash 感到困惑

javascript - 在 HTML 页面上显示来自 Node.js 服务器的数据

javascript - 时间序列和聚合框架(mongo)

node.js - 将 node_modules 安装到 vendor

node.js - 如何让这个 Typescript Webpack 项目编译而不出错?

node.js - npm install 在没有给出任何错误的情况下无法在 Windows 7 中运行

node.js - 升级 Node.js 时出现 SequelizeConnectionError(4x 到 7x)