使用require.js加载hyperagent

时间:2014-04-27 14:03:31

标签: requirejs

我已经使用bower来安装feragent,并且它取消了一些依赖关系,我现在还不确定如何正确地初始化它。

据我所知,它不支持AMD加载,因此我尝试使用shim配置。我尝试了一些事情,看起来像这样:

    <script src="{{ path('root') }}bower/requirejs/require.js"></script>
    <script>
        require.config({
            "baseUrl": "{{ url('root') }}/bower/",
            paths: {
                "vue": 'vue/dist/vue.min',
                "hyperagent": 'hyperagent/dist/hyperagent',
                "jquery": "jquery/jquery.min",
                "uri": "uri.js/src/URI.min"
            },
            shim: {
                'hyperagent': {
                    'deps': ['jquery', 'uri'],
                    'exports': 'Hyperagent'
                }
            }
        });

    </script>

我以后做

require(['vue', 'hyperagent'], function(Vue, Hyperagent) { ... });

Hyperagent未定义。

我离开了标记吗? (哦,胡子是树枝,这是一个Symfony项目)

1 个答案:

答案 0 :(得分:0)

感谢Ben Weiner这个。取自here

我通过bower安装了hyperagent和URIjs,现在我只是将window.URI设置为全局,然后才需要狂热。这是我的require.js配置的相关部分:

require.config({
  paths: {
    'hyperagent': '../bower_components/hyperagent/dist/amd/hyperagent',
    'URIjs': '../bower_components/uri.js/src',
  }
});

要使用它,我只需定义一个amd模块,它返回一个配置好的例子,例如configured_hyperagent.js:

define(function(require) {
  window.URI = require('URIjs/URI');
  window.URITemplate = require('URIjs/URITemplate');
  Hyperagent = require('hyperagent');

  // Hyperagent.configure() etc..

  return Hyperagent;
});