Ради интереса, я хочу загрузить jquery
, используя require.js
.Итак, я сделал следующее:
amd.js
define(["jquery-3.3.1"], function($) {
console.log(typeof $); // reports undefined
$("h1").html("Hello from AMD"); // causes TypeError (see below)
});
Мой HTML-файл действительно прост и содержит только пустой элемент <h1
> и обычныйrequire.js
определение.
<script data-main = "amd" src = "require.js"></script>
Кроме того, моя корневая папка, где все находится, также содержит исходный файл jquery-3.3.1.js
.
Вы можете увидеть весь пример кода здесьна моем репозитории github .Игнорировать все файлы, кроме:
- amd.html
- amd.js
- jquery-3.3.1.js
- require.js
Однако, когда я захожу на страницу, будь то протокол file:///
или веб-сервер, модуль не загружается, и я вижу пустую страницу.
Консоль сообщает undefined
для оператора console.log
и сообщает следующее исключение для второго оператора, где я обращаюсь к объекту / функции jQuery
, и это то, что возвращается из модуля.
TypeError:$ не является функцией
Я использую jquery версии 3.3.1.Если вы посмотрите на источник этой (и любой) версии jquery, то станет хорошо известно, что jquery является функциональным объектом.См. Ниже:
Из источника jQuery
define( [
...
], function( ..., ..., ... ) {
jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context );
},
return jQuery;
});