У меня много проблем с RequireJS
, я получаю ошибки просто с помощью модуля define
.Как правильно работать с RequireJS и его конфигурацией
Давайте предположим, что у меня есть такая конфигурация:
require.config({
baseUrl: "js/",
paths: {
jquery: "libs/jquery/jquery-2.0.2.min",
handlebars: "libs/backbone/template/handlebars",
lodash: "libs/backbone/template/lodash.min",
backbone: "libs/backbone/backbone-1.0.0.min",
helper:"app/helper",
jquery_cookie:"libs/jquery/plugin/jquery.cookie",
text:"libs/require/text-2.0.7"
},
shim: {
"lodash": {
exports: '_'
},
"handlebars": {
deps:["jquery"],
exports: 'Handlebars'
},
"backbone": {
deps: ["helper", "lodash", "handlebars", "jquery"],
exports: "Backbone"
}
},
urlArgs: "bust=" + (new Date()).getTime()
});
define(["jquery"], function ($) {
console.log('define "jquery" on config.js');
return $;
});
console.log("end config.js");
Первой, я попробовал классический путь, я загрузил файл config
где у меня есть все dependances моих JavaScript
файлов, я использую jQuery
, Backbone
и другие библиотеки.
<script type="text/javascript" data-main="config" src="js/libs/require/require-2.1.6.min.js"></script>
<script type="text/javascript">
require(["jquery"], function ($) {
console.log("jquery loaded");
});
</script>
При такой конфигурации я получаю эти ошибки и журналы последовательность:
Uncaught Error: Mismatched anonymous define() module: function(){return r}
> http://requirejs.org/docs/errors.html#mismatch
end config.js
define "jquery" on config.js
Кажется ошибка называется функцией require.config(...);
Я думал, что это была проблема нагрузки, поэтому я попытался использовать var require
, как описано в RequireJS site, не решая его.
Абсурдная вещь: я работаю над полноэкранным приложением, созданным в Backbone
с такой же конфигурацией, без каких-либо проблем, здесь мне нужно больше работать с разными видами, и я не могу начать, в основном, вся разница здесь. м с использованием CakePHP
.
Почему это не сработает, где я ошибаюсь?
Спасибо за информацию, я удалил ее и обновил вопрос, к сожалению, он все равно не сработает и выбросит ту же ошибку. – vitto
Проблема заключается в следующем коде: define (["jquery"], function ($) { console.log ('define "jquery" on config.js'); return $; }); Попробуйте удалить его – Tamillharasan
Метод define() используется для определения модуля. попробуйте заменить «define» в вашем коде на «require». – Tamillharasan