orocommerce - 如何在我的自定义主题中包含自定义 js 文件?
问题描述
使用 OroCommerce v4.1.8(最新稳定版)。
我已经创建了我的自定义主题(从“默认”主题扩展),它可以正确呈现(所有 css 都按定义加载和应用),但是对于我的自定义 JS 文件似乎没有包含在页面中。下面是我的 \Resources\views\layouts\mytheme\config\jsmodules.yml 文件:
shim:
jquery:
expose:
- $
- jQuery
magnificPopup:
imports:
- jQuery=jquery
owlCarousel:
imports:
- jQuery=jquery
exports: owlCarousel
aliases:
magnificPopup$: mytheme/js/magnific-popup.min
owlCarousel$: mytheme/js/owl.carousel.min
my-main$: mytheme/js/main
dynamic-imports:
mytheme:
- magnificPopup
- owlCarousel
- my-main
在网络服务器上,我可以看到在 /var/www/oroapp/public/layout-build/mytheme/chunk 文件夹下创建了一个已编译的 mytheme.js 文件,但是查看主页的 HTML,没有行/参考加载此文件。
请告知我遗漏了什么或如何解决这个问题?
解决方案
OroCommerce 使用 Webpack 构建 JS 依赖项。默认情况下,所有配置的 JavaScript 依赖文件都合并到一个文件中,例如:
<script src="/layout-build/mytheme/app.js"></script>
mytheme
您的主题名称在哪里。要在 ES6 模块中使用上述依赖项之一,您必须使用import
语句或require
函数手动要求它。
有关更多详细信息,请参阅有关OroCommerce 应用程序中的 JavaScript 模块化的官方文档。