【问题标题】:Does Ember support libraries which have dependencies on other libraries?Ember 是否支持依赖于其他库的库?
【发布时间】:2015-06-12 01:09:10
【问题描述】:

我正在尝试将名为 techan.js 的库与 Ember 一起使用。它依赖于 d3.js。

在我的 Brocfile.js 中,我有:

app.import('bower_components/d3/d3.js'); app.import('bower_components/TechanJS/dist/techan.js');

但是,当我运行该应用程序时,由于运行 techan 时未定义 d3,因此出现错误。

当使用像 Requirejs 这样的 AMD 库时,您可以定义依赖项并让它们以正确的顺序加载。 Ember 有类似的能力吗?

【问题讨论】:

    标签: javascript d3.js ember.js dependency-management techan.js


    【解决方案1】:

    是的,ember 支持具有依赖项的库。完成所有步骤后,您只需将 d3tech 声明为全局变量,以避免出现错误。

    //console
    bower install --save andredumas/techan.js
    
    //Brocfile.js
    ...
    app.import('bower_components/d3/d3.js');
    app.import('bower_components/TechanJS/dist/techan.js');
    module.exports = app.toTree();
    
    //.jshintrc
    {
      "predef": [
        //...,
        "d3",
        "techan"
      ],
      // ...
    }
    
    //console
    ember server
    

    【讨论】:

    • 恐怕这行不通。 TechcanJS 加载时范围内没有 d3。
    • 我创建了新的 ember-cli 应用程序 (0.2.7),完成您的步骤,我看到了您提到的错误。修改“predef”后错误消失。
    • 我什至可以画烛台图
    • 这一次它对我有用,但不是因为我输入了 predef。我认为它决定了首先随机加载什么,所以它可能会或可能不会工作。我很确定 predef 告诉 JSHint 不要抱怨,它实际上不会影响加载方式。
    猜你喜欢
    • 2011-08-15
    • 2018-04-09
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多