我正在尝试迁移一个ember应用程序以使用ember app-kit。该代码需要accounting.js库。在pre-app-kit版本中,文件是通过index.html
<script src="http://cdnjs.cloudflare.com/ajax/libs/accounting.js/0.3.2/accounting.min.js"></script>
并通过全局命名空间在视图中访问
App.MoneyField= Em.TextField.extend({
init: function() {
this._super();
var value = accounting.formatMoney(this.get("money") / 100, '');
this.set('value', value);
};
// other functions omitted
});
在app-kit版本中,我将accounting.js
作为bower依赖项包含在内。在bower.json
:
{
"name": "ember-app-kit",
"dependencies": {
"handlebars": "~1.1.2",
"jquery": "~1.9.1",
"qunit": "~1.12.0",
"ember": "~1.4.0-beta.2",
"ember-data": "~1.0.0-beta.6",
"ember-resolver": "git://github.com/stefanpenner/ember-jj-abrams-resolver.git#master",
"ic-ajax": "~0.3.0",
"ember-testing-httpRespond": "~0.1.1",
"accounting":"~0.3.2"
},
"resolutions": {
"ember": "~1.4.0-beta.2"
}
}
当我尝试构建应用时,它会给出错误
W117: 'accounting' is not defined.
我明白为什么会这样,并知道我需要某种import accounting from ...
陈述。
如何将通过bower安装的软件包导入为ES6模块?
答案 0 :(得分:1)
我知道这是几个月前提出来的,但从那时起,Ember App Kit已经由ember-cli继承,这提供了一种非常简单的方法来访问bower或npm依赖项。
关于作为ES6模块访问:
moment
import
语法访问
import { raw as icAjaxRaw } from 'ic-ajax';
值得一提的是,ember-cli现在支持一个附加系统,可以将这些内容简单地导入到项目的package.json
中。一些比较流行的图书馆已经有了ember-cli插件。 This post描述了如何自己编写。