好的,我想我可能已经解决了它,并且我认为文档不明确,需要进行更新以阐明流程。
我分别requirejs-config.js
从web/js
和web
目录中Magento_Theme
的主题目录和根目录移到和目录中<Vendor>/<theme>
,现在我的RequireJS配置requirejs-config.js
与所有其他包含项合并到主目录中。
因此,requirejs-config.js
根据主题/模块要求,您似乎必须在以下位置包含文件。
主题等级
app/design/frontend/<Vendor>/<theme>/requirejs-config.js
模块级别
app/design/frontend/<Vendor>/<theme>/<Module_Name>/requirejs-config.js
因此,在您requirejs-config.js
的主题主题中,应将组件映射到路径,然后用于shim
声明任何依赖项:
var config = {
map: {
'component': 'js/component'
},
shim: {
'component': {
deps: ['jquery']
}
}
};
然后,<script>
如果您要沿着这条路线走下去,则需要创建一个模板来通过标签保存组件的初始化(除非您将其直接附加到.phtml文件中的元素上),包括以下内容:
<script type="text/x-magento-init">
{
"*": {
"js/component": {} // Not entirely sure what {} is and what I'm passing here
}
}
</script>
或者,将其绑定到元素:
<script type="text/x-magento-init">
{
"#element": {
"js/component": {} // Not entirely sure what {} is and what I'm passing here
}
}
</script>
然后,只需在您的布局说明一个.phtml模板,例如,我把我的内default.xml
位于app/design/frontend/<Vendor>/<theme>/Magento_Theme/layout
身体节点下和参考:
<block class="Magento\Framework\View\Element\Template" name="theme.js" template="Magento_Theme::html/js.phtml" />