我正在尝试使用 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/”中看到该文件夹。
我在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/”中看到该文件夹。