【发布时间】:2015-10-24 15:44:56
【问题描述】:
上下文:
- 我的应用依赖于模块“我的模块”
- “我的模块”依赖于“快递”
- 我想
require('express')形成我的应用程序 无需直接在我的应用中安装“express”依赖项,而是希望从“my-module”中获取它。
是否可以配置 npm/package.json 工作,这是为什么?也许应该使用npm link,我只是不确定它是否是标准场景。
【问题讨论】:
上下文:
require('express') 形成我的应用程序
无需直接在我的应用中安装“express”依赖项,而是希望从“my-module”中获取它。是否可以配置 npm/package.json 工作,这是为什么?也许应该使用npm link,我只是不确定它是否是标准场景。
【问题讨论】:
我可以为您的问题找到几种可能的解决方案。
如果您是维护my-module 的人并且这是它的常见用例之一,那么您应该明确地export 任何要在父应用程序中使用的重要依赖项。
此解决方案更适合方便的实用程序模块,但对于 express 之类的模块而言,它看起来不是一个好的解决方案。
如果您只是想消除重复的依赖关系,那么您可以将express 添加到您的父应用程序中。如果您的任何应用程序依赖项也将依赖于express,npm 将使用已安装的一个(前提是没有版本不匹配)。
如果my-module 是第三方模块,则此解决方案更可取。
同样,如果您是维护my-module 的人,您可以指定express 和peerDependency。通过这样做,您将告诉npm 始终使用父应用程序中的express 模块。
此解决方案更适合express 和mongoose 等框架模块。
如果由于某种原因这些解决方案都不适合您,您可以 require 另一个依赖项 using the following code 的任何依赖项:
require('my-module/node_modules/express')
如果可以的话,尽量避免这种方法。
【讨论】: