Я создаю require.js
файл в своей пользовательской теме, когда пытаюсь загрузить пользовательский js library
.
CODE JS: (requirejs-config.js)
var config = {
map: {
'*': {
'demo': 'js/vendor/demo/demo'
}
},
deps: [
'demo'
]
};
Я загружаю require.js
и require-config.js
в <head>
КОД XML: (default.xml)
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<update handle="default_head_blocks"/>
<body>
<block name="require.js" class="Magento\Framework\View\Element\Template" template="Magento_Theme::page/js/require_js.phtml" />
</body>
</page>
default_head_blocks.xml
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<meta name="format-detection" content="telephone=no"/>
<link src="requirejs/require.js"/>
<css src="css/styles-m.css"/>
<css src="css/styles-l.css" media="screen and (min-width: 768px)"/>
<css src="css/print.css" media="print"/>
</head>
<body>
<referenceContainer name="after.body.start">
<block class="Magento\RequireJs\Block\Html\Head\Config" name="requirejs-config"/>
</referenceContainer>
</body>
</page>
КОД PHTML: (require_js.phtml)
<script>
var BASE_URL = '<?= $block->escapeUrl($block->getBaseUrl()) ?>';
var require = {
"baseUrl": "<?= $block->escapeUrl($block->getViewFileUrl('/')) ?>"
};
</script>
Все в порядке, js
файлызагружены, но проблема заключается в следующей ошибке, я получаю
ReferenceError: jQuery is not defined
порядок, в котором элементы загружены, я публикую на изображении ниже
.
Я не понимаю, почему возникает ошибка, jQuery
объявлено раньше demo.js
Есть ли у вас какие-либо предложения по этой проблеме и как ее можно решить?
Спасибо!