Requirejs没有像我期望的那样加载我的手柄依赖项

时间:2013-11-11 11:38:26

标签: javascript requirejs handlebars.js

我正在尝试使用require加载一些js文件。这是我的配置文件:

define(function() {

  "use strict";

  require.config({
    hbs : {
      templateExtension : 'hbs',
      disableHelpers: true,
      disableI18n : true
    },

    shim: {
      'underscore': {
        exports: '_'
      },
      'backbone': {
        deps: [
          'underscore',
          'jquery'
        ],
        exports: 'Backbone'
      },
      json2 : {
        exports: "JSON"
      },
      'jqueryMockAjax': {
        exports: '$.mockjax',
        deps: ['jquery']
      }
    },

    paths: {

      jquery: 'libs/jquery/jquery',
      jqueryMockAjax: 'libs/jquery-mockjax/jquery.mockjax',
      underscore: 'libs/underscore/underscore',
      backbone: 'libs/backbone/backbone',

      handlebars : 'libs/hbs/handlebars',
      text: 'libs/text/text',
      hbs: 'libs/hbs/hbs',
      i18nprecompile : 'libs/i18nprecompile',
      json2 : 'libs/json2/json2'
    }
  });
});

正如您所见,我的js供应商文件位于我的libs目录中。我的目录结构如下所示:

+project
  +app
    +js
      +libs
    app.js
    main.js

我的大多数依赖项都像他们应该的那样加载,比如jqueryunderscore,但是把手的东西没有像它应该的那样加载。例如,我有handlebars.js的{​​{1}}路径,它正在移除路径的libs/handlebars/handlebars部分。对于其他文件,它不是。这是我的网络选项卡,显示了什么内容以及什么不是。

enter image description here

您可以看到要删除的路径的libs部分。我不知道这意味着什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我遇到导入问题的原因是当bower插入hbs插件时,它会提取该插件所需的所有文件。 handlebarsi18nprecompilejson2都在hbs插件的目录中。当我提到该文件中的副本时,一切都正常工作。我不明白为什么以前定义的路径不起作用。如果有人对此问题有一些信息,请发表评论。