1

我在 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,我在我的主题中包含了这个文件,但是我在 oro.min.js 文件中看不到我的 js 函数。

我错过了什么?

4

1 回答 1

2

首先,您使用的是什么版本的 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} 是您的捆绑包的公共文件夹(公司名称 + 捆绑包名称),您应该在“php app/console assetic:dump”命令之后在“/web/bundles/”中看到此文件夹。

于 2017-09-25T13:34:50.813 回答