У меня довольно большой проект, в котором я пытаюсь объединить все мои 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/все еще вызываются. Пожалуйста, укажите мне в правильном направлении.
AH, большое вам спасибо. Я застрял на этом часами. Даже не рассматривал атрибут data-main –