eti*_*oel 20 javascript ember.js
我有一个使用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;
Run Code Online (Sandbox Code Playgroud)
所以,我想要做的是,在我的应用程序中,导入main和使用它包含的不同功能.
例如,在某个emberjs控制器中:
import Main from 'main';
//use Main here
Run Code Online (Sandbox Code Playgroud)
为此,我想在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'
}
});
Run Code Online (Sandbox Code Playgroud)
但是,这没有任何作用.基本上,我希望将转换后的文件包含在vendor.js我可以通过导入它来使用库的地方或某个地方.
我在这里缺少一些东西,但我无法确定它.
Edit1:在我的brocfile.js末尾添加这些行之后:
mergeTrees = require('broccoli-merge-trees')
module.exports = mergeTrees([app.toTree(), amdFiles]);
Run Code Online (Sandbox Code Playgroud)
我可以得到一个看起来像这样的ES5:
define(['main/api', 'main/message'], function(api, message) {
var main = {};
main.api = Api;
main.message = Message;
var _main = main;
return _main;
});
Run Code Online (Sandbox Code Playgroud)
问题是,它不会导入main/api,并main/message为好.我是否必须为我想要的每个文件重复代码?
此外,该文件不是连接在一起,vendor.js而是简单但在根/dist
你有以下内容:import Api from 'main/api'- 但我没有看到main你所解释的文件夹 - 只有一个名为main-lib... 的文件夹
难道说main/api和main/message不包括在内,因为他们实际上是不存在的?您可能需要在文件中使用main-lib/api和main-lib/messagemain.js
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |