首页 > 解决方案 > 如何在我的自定义主题中包含自定义 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

解决方案


OroCommerce 使用 Webpack 构建 JS 依赖项。默认情况下,所有配置的 JavaScript 依赖文件都合并到一个文件中,例如:

<script src="/layout-build/mytheme/app.js"></script>

mytheme您的主题名称在哪里。要在 ES6 模块中使用上述依赖项之一,您必须使用import语句或require函数手动要求它。

有关更多详细信息,请参阅有关OroCommerce 应用程序中的 JavaScript 模块化的官方文档。


推荐阅读