2014-11-18 4 views
0

У меня довольно большой проект, в котором я пытаюсь объединить все мои JS-файлы в один файл. Я смог сделать именно это, но у меня возникли проблемы с реализацией двух файлов в коде.Backbone + RequireJS «define не определен»

Мои Gruntfile имеет задачу делать конкатенацию:

requirejs: { 
      compile: { 
       options: { 
        baseUrl: "<%= yeoman.app %>", 
        mainConfigFile: "<%= yeoman.app %>/config.js", 
        include: ["config"], 
        out: "<%= yeoman.app %>/dist/main.js" 
       } 
      } 
     }, 

Опять же, это работает просто отлично. Мой config.js содержит все библиотеки, модель, помощник, коллекцию и представление, используемое в проекте:

require.config({ 
      paths: { 
       // path configuration assumes .js suffix 

       // Libraries 
       'jquery': 'js/libs/jquery-1.8.2.min', 
       // custom version of jQM, see comments section in library for custom change log 
       'jQM': 'js/libs/jquery.mobile-1.2.0-CUSTOM', 
       //'jQUI': 'js/libs/jquery-ui-1.8.24.dev.min', 
       'Underscore': 'js/libs/underscore', 
       'JSON2': 'js/libs/json2', 
       'Backbone': 'js/libs/backbone', 
     etc... 
     }, 
     shim: { 
      'jQMConfig': { 
       //deps: ['jQUI'] // use jQUI as dependency if jQUI is required. see https://github.com/jquery/jquery-mobile/issues/5119 
       deps: ['jquery'] 
      }, 
      'jQM': { 
       deps: ['jQMConfig'] 
      }, 
etc... 
    }); 
require(['js/router']); 

Наконец, в моем HTML-коде, я в то числе этих двух сценариев:

<script type="text/javascript" src="dist/main.js"></script> 
<script data-main="config" src="js/libs/require-2.1.15.min.js"></script> 

где я получаю сообщение об ошибке в консоли «define not defined», и все файлы в папке js/все еще вызываются. Пожалуйста, укажите мне в правильном направлении.

ответ

1

Прежде всего, вы должны указать файл require.js, между тем вы можете указать data-main, чтобы быть вашим основным файлом.

Включите скрипты в вашем HTML, как это:

<script data-main="dist/main" src="js/libs/require.js"></script> 

См patterns for seperating config from main module, для более подробной информации.

+0

AH, большое вам спасибо. Я застрял на этом часами. Даже не рассматривал атрибут data-main –

Смежные вопросы