我正在尝试使用 requirejs 将我自己的 js 文件添加到 orocommerce 但没有成功

I am trying to add my own js file to orocommerce using requirejs but did not work

我在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'

和运行这个命令:phpapp/consoleoro:requirejs:build

构建命令在我的主题文件夹中创建 oro.min.js,我将这个字段包含在我的主题中,但我在 oro.min.js 文件中看不到我的 js 函数。

我错过了什么?

首先,您使用的是哪个版本的 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'

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

其中 {mybundle} 是您的包(公司名称 + 包名称)的 public 文件夹,您应该在 "php app/console assetic:dump" 命令后的“/web/bundles/”中看到该文件夹​​。