在Ember-cli项目中使用ES6库

2024-02-28

我有一个使用 Ember-Cli 的小型 EmberJS 应用程序。我的应用程序有一个私有 ES6 库,它是一个 Bower 依赖项。基本上,我想要的是导入库并在任何我想要的地方使用它。

如果我没记错的话,我应该将库转译为我的brocfile.js并在之后使用它。不幸的是,我无法提供太多具体信息,但我会尽力提供更清晰的信息。

我的外部库名为main-lib其结构如下(它正在另一个项目中工作):

  • bower_components
    • main-lib
      • api.js
      • main.js
      • 消息.js

在 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


您有以下内容:import Api from 'main/api'- 但我没有看到名为的文件夹main在你所解释的内容中 - 只有一个名为main-lib ...

难道是这样main/api and main/message不包括在内,因为它们实际上不存在?您可能需要使用main-lib/api and main-lib/message在你的main.js file

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Ember-cli项目中使用ES6库 的相关文章

随机推荐