背景信息:
require('express')
形成我的应用
不需要在我的应用程序中直接安装'express'依赖,而是我希望它从'my-module'中获取。是否有可能配置npm / package.json这是为什么?可能应该使用npm link
,我只是不确定它是否是标准方案。
答案 0 :(得分:1)
我可以看到几种可能的解决方案。
如果您是维护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')
如果可以的话,尽量避免使用这种方法。