Я пытаюсь добавить свой собственный файл js в orocommerce, используя requirejs, но не работает

Я создал внутри файла myBundle/Resources/config/requirejs.yml следующие параметры:

config:
shim:
    'jquery-ui':
        deps:
            - 'jquery'
    'underscore':
        exports: '_'
    'backbone':
        deps:
            - 'underscore'
            - 'jquery'
        exports: 'Backbone'
paths:
    'jquery': '../js/layout/my_theme/js/jquery-3.2.1.min.js'
    'jquery-ui': 'bundles/oroui/lib/jquery-ui.js'
    'bootstrap': 'bundles/oroui/lib/bootstrap.js'
    '../js/layout/my_theme/js/scripts.js': '../js/layout/my_theme/js/scripts.js'

и запустите эту команду: php app/console oro:requirejs:build

и команда сборки создает oro.min.js в папке моей темы, и я включил это поле в свою тему, но я не вижу свои функции js в файле oro.min.js.

что мне не хватает?


person Ayman Hussein    schedule 23.09.2017    source источник
comment
я не вижу свои функции js в файле oro.min.js. Это супер расплывчатое описание. Файл совсем пустой? Если она не совсем пуста, то что в ней содержится? Чего именно не хватает? Что присутствует? Дополнительное примечание: если вы не используете очень старую версию Backbone, вам нужен shim для нее.   -  person Louis    schedule 23.09.2017
comment
мой файл js содержит некоторые функции, которые нажимают кнопки и предупреждают сообщения, подобные этим простым действиям.   -  person Ayman Hussein    schedule 23.09.2017


Ответы (1)


Прежде всего, какую версию OroCommerce вы используете? В версии 1.3 у нас есть конфигурационные файлы для всего приложения (админ + интерфейс) и только для интерфейса.

Вы изменяете файл конфигурации, расположенный в «/Resources/config/requirejs.yml» — это конфигурация всего приложения, и она будет встроена в файл «web/js/oro.min.js», а не в файл вашей темы.

Конфигурация внешнего интерфейса хранится в «/Resources/views/layouts/{your_theme}/config/requirejs.yml». Скрипты из этого конфига будут встроены в "oro.min.js" вашей темы.

Я спросил вас о версии OroCommerce - в 1.3 мы генерируем "oro.min.js" для каждой темы, но не используем его. И в админке, и во внешнем интерфейсе мы используем файл /web/js/oro.min.js.

В версии 1.4 мы будем использовать файлы «/Resources/config/requirejs.yml» для администратора и «/Resources/views/layouts/{your_theme}/config/requirejs.yml» для вашей темы во внешнем интерфейсе.

Итак, проверьте, пожалуйста, ваши скрипты в "web/js/oro.min.js" и измените пути конфигурации с

'../js/layout/my_theme/js/scripts.js': '../js/layout/my_theme/js/scripts.js'

to

'{mybundle}/js/layout/my_theme/js/scripts.js': '/bundles/{mybundle}/js/layout/my_theme/js/scripts.js'

где {mybundle} — общая папка вашего пакета (название компании + имя пакета), вы должны увидеть эту папку внутри «/web/bundles/» после команды «php app/console assets:dump».

person Oleksandr Nechyporenko    schedule 25.09.2017
comment
На самом деле я использую oro1.1 - person Ayman Hussein; 25.09.2017
comment
То же самое для всех версий до 1.4. Это помогло вам? - person Oleksandr Nechyporenko; 26.09.2017
comment
Да, спасибо ... проблема была в файле, он должен быть внутри темы, а не снаружи - person Ayman Hussein; 26.09.2017