我有一个使用 Ember-Cli 的小型 EmberJS 应用程序。我的应用程序有一个私有 ES6 库,它是一个 Bower 依赖项。基本上,我想要的是导入库并在任何我想要的地方使用它。
如果我没记错的话,我应该将库转译为我的brocfile.js
并在之后使用它。不幸的是,我无法提供太多具体信息,但我会尽力提供更清晰的信息。
我的外部库名为main-lib
其结构如下(它正在另一个项目中工作):
在 main.js 文件中,我有以下内容:
import Api from 'main/api';
import Message from 'main/message';
var main = {};
main.api = Api;
main.message = Message;
export default main;
所以,我想做的是,在我的应用程序中导入main
并使用它包含的不同功能。
例如,在某个 emberjs 控制器中:
import Main from 'main';
//use Main here
为此,我想在我的 brocfile.js 中执行以下操作
var tree = 'bower_components/main-lib';
var ES6Modules = require('broccoli-es6modules');
var amdFiles = new ES6Modules(tree, {
format: 'amd',
bundleOptions: {
entry: 'main.js',
name: 'mainLib'
}
});
然而,这没有任何作用。基本上,我希望将转译的文件包含在vendor.js
或者我可以通过导入来使用该库的地方。
我在这里缺少一些东西,但我无法确定它。
Edit1:在我的 brocfile.js 末尾添加这些行后:
mergeTrees = require('broccoli-merge-trees')
module.exports = mergeTrees([app.toTree(), amdFiles]);
我可以获得如下所示的 ES5:
define(['main/api', 'main/message'], function(api, message) {
var main = {};
main.api = Api;
main.message = Message;
var _main = main;
return _main;
});
问题是没有导入main/api
and main/message
以及。我是否必须为我想要的每个文件重复代码?
此外,该文件未串联在vendor.js
但只是简单的根源/dist