Предположим, что это мои config.js или main.js:
require.config({
// paths are analogous to old-school <script> tags, in order to reference js scripts
paths: {
jquery: "libs/jquery-1.7.2.min",
underscore: "libs/underscore-min",
backbone: "libs/backbone-min",
jquerymobile: "libs/jquery.mobile-1.1.0.min",
jquerymobilerouter: "libs/jquery.mobile.router.min"
},
// configure dependencies and export value aliases for old-school js scripts
shim: {
jquery: ["require"],
underscore: {
deps: ["jquery"],
exports: "_"
},
backbone: {
deps: ["underscore", "jquery"],
exports: "Backbone"
},
jquerymobilerouter: ["jquery", "backbone", "underscore"],
jquerymobile: ["jquery", "jquerymobilerouter", "backbone", "underscore"]
}
});
require(["jquery", "backbone", "underscore", "app/app.min", "jquerymobilerouter", "jquerymobile"], function ($, Backbone, _, App) {
console.log($);
console.log(Backbone);
console.log(_);
$("body").fadeIn(function () {
App.init();
});
});
-
Если я правильно понимаю, параметр
paths
config позволяет вам ссылаться на скрипты, a-la тег<script>
в HTML. Предполагая, что это так, мне все еще нужны сценарии псевдонимов, такие как jQuery, с$
или подчеркиванием с_
в моем действительном требовании ниже? Кажется странным, что я должен был бы, учитывая, что если вы ссылаетесь на jQuery со стандартным тегом<script>
,$
можно использовать во всех ваших script автоматически. Разве это не должно быть одинаково с помощьюpaths
? -
Я новичок в опции
shim
config, который, как я понимаю, заменил устаревший плагинorder!
. Что на самом деле делает свойствоexports
? Кажется, он не создает псевдоним для script; например, если я установилexports
для подчеркивания на"whatever"
, а затем попробуюconsole.log(whatever)
, это undefined. Итак, что точка? -
Как можно правильно использовать скрипты jQuery "глобально?" То есть, каким образом можно использовать псевдоним
$
в моем модуле App.js или любой другой модуль в моей папке "приложение"? Должен ли я требовать jQuery в каждом отдельном модуле и псевдоним$
каждый раз? Или так я сделал это здесь надлежащим образом?
Я бы очень признателен за любую другую критику этого особого script; документация для Require.js, на мой взгляд, оставляет желать лучшего; вещи, о которых я действительно хотел бы узнать больше, похоже, затуманиваются и оставляют меня почесывать голову.