【问题标题】:use npm module of dependency [duplicate]使用依赖的npm模块[重复]
【发布时间】:2015-10-24 15:44:56
【问题描述】:

上下文:

  1. 我的应用依赖于模块“我的模块”
  2. “我的模块”依赖于“快递”
  3. 我想require('express') 形成我的应用程序 无需直接在我的应用中安装“express”依赖项,而是希望从“my-module”中获取它。

是否可以配置 npm/package.json 工作,这是为什么?也许应该使用npm link,我只是不确定它是否是标准场景。

【问题讨论】:

    标签: node.js npm


    【解决方案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')
    

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

    【讨论】:

    • 谢谢,看来 perr 依赖是我的选择!
    • peerDeps 的问题虽然不再自动安装,但应用程序应该明确依赖它们 =(
    猜你喜欢
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 2019-03-08
    • 2013-08-26
    • 1970-01-01
    相关资源
    最近更新 更多