我有一个小的EmberJS应用程序,使用Ember-Cli。我的应用程序有一个私有的ES6库,是一个bower依赖项。基本上,我的想法是导入该库,并在需要的地方使用它。
如果我没错的话,应该在我的
我的外部库名为
此外,该文件未在
如果我没错的话,应该在我的
brocfile.js
中转换库,然后使用它。不幸的是,我无法提供太多具体信息,但我会尽最大努力让它尽可能清晰明了。我的外部库名为
main-lib
,结构如下(在另一个项目中运行):
- bower_components
- main-lib
- api.js
- main.js
- message.js
- main-lib
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
或者其他地方,我可以通过导入来使用该库。
我错过了一些东西,但我无法准确定位它。
编辑1:在我的 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
和 main/message
。我必须为每个文件重复这段代码吗?此外,该文件未在
vendor.js
中连接,而只是放在了 /dist
的根目录下。
import api
吗? - etiennenoel