使用npm模块的依赖

时间:2015-08-02 12:39:35

标签: node.js npm

背景信息:

  1. 我的应用程序取决于模块'my-module'
  2. 'my-module'取决于'express'
  3. 我想require('express')形成我的应用 不需要在我的应用程序中直接安装'express'依赖,而是我希望它从'my-module'中获取。
  4. 是否有可能配置npm / package.json这是为什么?可能应该使用npm link,我只是不确定它是否是标准方案。

1 个答案:

答案 0 :(得分:1)

我可以看到几种可能的解决方案。

明确导出

如果您是维护my-module并且这是其常见用例之一的人,那么您应该明确export在父应用程序中使用的任何重要依赖项。

此解决方案适用于便携式实用程序模块,但对于express等模块而言,它看起来不是一个好的解决方案。

依赖于npm

如果您只想消除重复的依赖关系,那么您可以将express添加到您的父应用程序。如果您的任何应用程序依赖项也依赖于expressnpm将使用已安装的一个(假设没有版本不匹配)。

如果my-module是第三方模块,则此解决方案更可取。

使用peer dependencies

同样,如果您是维护my-module的人,则可以指定expresspeerDependency。通过这样做,您将告诉npm始终使用父应用程序中的express模块。

此解决方案适用于expressmongoose等框架模块。

使用最直接的方法

如果这些解决方案都不适合您,您可以require依赖另一个依赖关系using the following code

require('my-module/node_modules/express')

如果可以的话,尽量避免使用这种方法。