【发布时间】: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.js从es2015-test/controllers/application导入错误:找不到从es2015-test/controllers/application导入的模块bower_components/moment/moment.js -
@bek 原来我让它工作了.. 并且记录下来 /* global moment / 和 / global moment:true */ work.