【问题标题】:Using moment.js with Ember, Ember-CLI将 moment.js 与 Ember、Ember-CLI 一起使用
【发布时间】:2016-04-03 21:25:23
【问题描述】:

我一直在尝试让 moment.js 库与使用 Ember-cli 的 Ember 应用程序一起工作。请注意,我对 ES2015 相当陌生。

灰烬 2.2.0 Ember-cli 1.13.13

我的 ember-cli-build

/*jshint node:true*/
/* global require, module */
var EmberApp = require('ember-cli/lib/broccoli/ember-app');

module.exports = function(defaults) {
    var app = new EmberApp(defaults, {
        //options
    });

    app.import('bower_components/moment/moment.js');

    return app.toTree();
};

还有我的 .jshintrc

"predef": [
    "document",
    "window",
    "-Promise",
      "moment"
  ],

和我的控制器

/* global moment:true */
import Ember from 'ember';

export default Ember.Controller.extend({
    firstName: null,
    lastName: null,
    day: function () {
        return moment('Dec 25, 1995');
    }.property()
});

我总是收到“时刻”尚未定义的错误。我读到最新的 moment.js 已停止生成全局“时刻”,但我不确定该怎么做。

构建工作。如果我拉起生成的 vendor.js,我可以在其中看到 moment.js 文件的完整内容。但是,当我在 chrome 调试器中查看 vendor.js 时,内容被省略了。我不确定这是否是由于一些优化。

【问题讨论】:

  • 我不是 100% 确定,但你可以试试 import moment from 'bower_components/moment/moment.js';。如果 moment.js 现在使用 ES6-Modules 这应该可以工作。 (我自己也很好奇)
  • 我认为你的全局变量错了,应该是 /* global moment */,所以你可能只会收到 jshint 警告
  • 只是为了好玩我尝试了@Jeff的建议,我也很好奇......这在路由上产生了错误处理路由时出错:索引找不到模块bower_components/moment/moment.jses2015-test/controllers/application导入错误:找不到从es2015-test/controllers/application导入的模块bower_components/moment/moment.js
  • @bek 原来我让它工作了.. 并且记录下来 /* global moment / 和 / global moment:true */ work.

标签: ember.js ember-cli


【解决方案1】:

在 ember 应用中安装 moment.js 的最佳方式是使用 ember moment addon 安装后就可以使用了

import moment from 'moment';

另外你会得到各种helpers

【讨论】:

  • 事实证明我可以使用这些设置!...问题是我在“ember serve”运行时进行了更改,但由于某种原因它无法启动进口。我不得不完全停止服务器。不过我想我会将此标记为答案,因为无论如何它都是更好的方法。
猜你喜欢
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 2016-03-20
  • 1970-01-01
  • 2016-02-17
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多