在库内部调用 'Interval.after' 时,Luxon returns 无效间隔

Luxon returns Invalid Interval when 'Interval.after' is called inside library

当在库中调用 Interval.after 方法时,我遇到了 Luxon 的奇怪问题。

const interval = Interval.after(dateTime, duration);

以下日志来自应用程序 DateTime__Duration,第二行是 Interval.after 的记录结果:

1535806800000__PT330M
[2018-09-01T16:00:00.000+03:00 – 2018-09-01T21:30:00.000+03:00)

但是,如果我将这些值传递给库方法并在那里观察日志:

1535806800000__PT330M
Invalid Interval

原因是invalid endpoints。为 DateTime 调用 isValidDuration returns true.

如果我以与应用程序完全相同的方式初始化 DateTimeDuration,那么 Interval.after 在库中工作。

const interval2 = Interval.after(DateTime.fromISO('2018-09-01T16:00:00.000+03:00',
    {zone: 'Europe/Helsinki'}), Duration.fromObject({ minutes: 330 }));

两个调用都使用相同的对象,但 Interval.after 仅在应用程序内部有效。知道是什么原因造成的吗?

更新

这似乎与 DateTime 有某种关系。即使 luxon 版本相同,它在应用程序和库中的行为是否会有所不同?据我了解,luxon 没有依赖项。

更新 2

我设法获得了此设置的复制版本。应用程序和库源都可以从 http://www.filedropper.com/luxon

下载

为了将本地库链接到应用程序,我在库中使用了 yarn link,之后在应用程序中使用了 yarn link "luxon-test-lib"

发生这种情况的原因是由于在开发时本地链接库。因此,即使 app 和 lib 都有相同的 luxon 版本,它们都有单独的模块。由于那里使用了 instanceof 检查,导致 luxon 库中断。