【问题标题】:Trouble with a package (moment-recur) when moving from Bower to NPM从 Bower 迁移到 NPM 时出现包问题(moment-recur)
【发布时间】:2017-10-31 14:54:17
【问题描述】:

背景:我正在尝试将这个包 Moment-recur 从 Bower 移动到我们的 Angular 1.5 应用程序中的 NPM 并且遇到了一些问题。该包依赖于Moment,并将其功能扩展为

moment.recur = function(start, end) {
    // If we have an object, use it as a set of options
    if (start === Object(start) && !moment.isMoment(start)) {
        return new Recur(start);
    }

    // else, use the values passed
    return new Recur({ start: start, end: end });
};

src

这就是我所做的:从 bower 卸载包,通过 npm 安装并更新引用包的 index.js:

发件人:

window.moment = require('moment');
require('Bower_Components/moment-recur/moment-recur.js');

收件人:

window.moment = require('moment');
require('moment-recur');

问题: 当我运行我们的单元测试(业力)时,所有引用 recur 函数的测试都被破坏了。我看到的错误是:

TypeError: moment(...).recur is not a function

我在 Moment-Recur 包的 js 文件中包含控制台日志,并且在我运行应用程序时可以看到。但是,我不明白为什么 recur 功能暂时不可用。

我迷路了,不知道如何找出原因。如果您需要我从应用中发布任何其他配置设置,请告诉我。

【问题讨论】:

    标签: javascript angularjs momentjs moment-recur


    【解决方案1】:

    我最终解决了这个问题。虽然我问这个问题已经一年多了,但我认为答案(据我记得)可能会对某人有所帮助。

    解决我的问题的方法是这样做:

    window.moment = require('moment-recur')
    

    而不是

    window.moment = require('moment')
    

    我相信这是因为 recur 处理 moment 包的方式。粗略查看 recur 的 src 代码似乎表明它返回了一个带有一些附加功能的时刻对象。这可以解释为什么在我的情况下只附加 moment-recur 就足够了。

    【讨论】:

      猜你喜欢
      • 2018-09-17
      • 2018-04-29
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      • 2011-09-12
      相关资源
      最近更新 更多