我已经阅读了很多有关dependencies和peerDependencies的文章和帖子,但在我的非常简单的情况下仍然不确定要做什么...
我有一个库(发布到私人npm存储库),它使用rxjs
,例如它有一些返回类型为Observable
的函数(我在其他Angular项目中使用这些)。因此,它具有以下导入的源文件...
import { Observable, Subscriber, TimeoutError } from 'rxjs';
所以,我通常会认为这是一个依赖项,我需要rxjs
才能构建它。
然而,在任何使用应用程序中,我认为我们都希望使用精确的rxjs
版本。阅读这篇文章后,似乎如果在我的项目中将'rxjs'作为依赖项(例如,假设为v6),我也希望使用'rxjs' v6的消费项目(而不是v7)。但是,如果我只有rxjs
作为依赖项,npm会不会只在我的库的node_modules下安装另一个“私有”版本的rxjs
?
但是,如果我只把rxjs
包含在peerDependencies
中,我就无法构建,我会得到...
error TS2307: Cannot find module 'rxjs'.
1 import { Observable, Subscriber, TimeoutError } from 'rxjs';
~~~~~
我在这里使用rxjs作为一个简单的具体例子,但其他库也可能会出现这种情况。
这是否意味着我需要将其作为依赖项和peerDependency都需要?我没有看到其他地方提到这一点?