Javascript Magento 2中未定义jQuery
当我尝试加载自定义jsJavascript Magento 2中未定义jQuery,javascript,jquery,html,magento2,Javascript,Jquery,Html,Magento2,当我尝试加载自定义js库时,我正在自定义主题中创建一个require.js文件 代码JS:(requirejs config.JS) 我在中加载require.js和require config.js 编码XML:(default.XML) 我在下图中发布了项目的加载顺序 我不明白为什么会发生错误,jQuery在demo.js 你对这个问题有什么建议吗?如何解决 谢谢 理想情况下,您加载的脚本将是通过调用define()定义的模块。但是,您可能需要使用一些传统/传统的“浏览器全局”脚本,这些脚
库时,我正在自定义主题中创建一个require.js
文件
代码JS:(requirejs config.JS)
我在
中加载require.js
和require config.js
编码XML:(default.XML)
我在下图中发布了项目的加载顺序
我不明白为什么会发生错误,jQuery
在demo.js
你对这个问题有什么建议吗?如何解决
谢谢 理想情况下,您加载的脚本将是通过调用define()定义的模块。但是,您可能需要使用一些传统/传统的“浏览器全局”脚本,这些脚本不通过define()表达它们的依赖关系。对于这些,您可以使用垫片配置。正确地表达它们的依赖关系。
您需要在require.js文件的shim config中添加jQuery依赖项,如下所示:
var config = {
map: {
'*': {
'demo': 'js/vendor/demo/demo'
}
},
shim: {
demo: {
deps: ['jquery']
}
}
};
您需要添加demo.js中的代码,以便任何人进行调试。虽然jquery是在demo.js之前加载的,但它可以通过require.js和它的require([…],function(…){})获得代码>,而不是全局。这可能足以让你自己用谷歌搜索一下。
<?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>
<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>
<script>
var BASE_URL = '<?= $block->escapeUrl($block->getBaseUrl()) ?>';
var require = {
"baseUrl": "<?= $block->escapeUrl($block->getViewFileUrl('/')) ?>"
};
</script>
ReferenceError: jQuery is not defined
var config = {
map: {
'*': {
'demo': 'js/vendor/demo/demo'
}
},
shim: {
demo: {
deps: ['jquery']
}
}
};