我用我的自定义主题覆盖了Sylius的主题,到目前为止工作正常。我在app/themes/myCustomTheme
中创建了一个新主题,并覆盖了例如/SyliusShopBundle/views/
中的树枝模板。Sylius:如何修改/自定义app.js?
现在我想覆盖位于vendor/sylius/sylius/src/Sylius/Bundle/ShopBundle/Resources/private/js/
的一般app.js
。例如。上,而不是18行:
$('.ui.accordion').accordion();
我想用一个不同的选择来初始化手风琴:
$('.my-custom-accordion').accordion();
假设这是我想在整个JavaScript代码做的唯一变化。什么是最好和最有效的方式来做到这一点?我希望在有Sylius版本更新时尽可能减少冲突,因此尽可能少地触碰文件。当然,不需要自己重写整个javascript功能。
我能想到的不同的方式来做到这一点,但我希望有一个更好的一个:
- 复制的一切。将所有的
UiBundle
&ShopBundle
javascript代码复制到我的主题并修改必要的部分。更新全局gulpfile以不再使用vendor/sylius/sylius/src/Sylius/Bundle/ShopBundle/Gulpfile.js
中的gulp文件,而是使用重复的/myCustomTheme/SyliusShopBundle/Gulpfile.js
。下行:重复的代码,JavaScript更新不再可能。 - 添加自定义路径到现有的gulp文件。更新
vendor/sylius/sylius/src/Sylius/Bundle/ShopBundle/Gulpfile.js
中的gulp文件,这意味着删除包含app.js
:vendorShopPath + 'Resources/private/js/**'
的行,而是引用不包含app.js
的所有单个文件,并引用我的主题文件夹中的自定义app.js
。缺点:对gulp文件的更改可能会被下一次更新覆盖。
如何有效地修改/定制/扩展Sylius中现有的JavaScript代码?
谢谢您的回答!如果我正确理解了你的话,那么你在现有的app.js之上添加了自定义app.js的附加功能,对吧?如果我想添加额外的JavaScript,那么您的工作流程似乎是一个很好的解决方案,但是如果我想更新/修改现有的内容呢? – chaenu
如果您使用与sylius'js中使用的相同的函数名称,则会覆盖/替换这些函数。 如果有人有我更好的想法,我打开。 –