Как включить пользовательский файл js в мою пользовательскую тему?

#orocommerce

#orocommerce

Вопрос:

Использование OroCommerce версии 4.1.8 (последняя стабильная версия).

Я создал свою пользовательскую тему (расширенную от темы «по умолчанию»), которая отображается правильно (весь css загружен и применяется, как определено), но для моего пользовательского файла JS, который, похоже, не включен на страницу. Ниже находится my 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
  

На веб-сервере я вижу скомпилированный mytheme.js файл создается в папке / var / www / oroapp / public /layout-build / mytheme / chunk, но при просмотре HTML для домашней страницы нет строки / ссылки для загрузки этого файла.

Пожалуйста, сообщите, чего мне не хватает или как устранить это?

Ответ №1:

OroCommerce использует Webpack для создания зависимостей JS. По умолчанию все настроенные файлы зависимостей JavaScript объединяются в один файл, например:

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

Где mytheme название вашей темы.
Чтобы использовать одну из вышеупомянутых зависимостей в вашем модуле ES6, вы должны запросить ее вручную с помощью import инструкции или с помощью require функции.

Более подробную информацию смотрите в официальной документации о модульности JavaScript в приложении OroCommerce.