Skip to content

Commit e0ea3eb

Browse files
committed
commits
1 parent 78b255b commit e0ea3eb

File tree

4 files changed

+241
-1
lines changed

4 files changed

+241
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
namespace Magefan\RocketJavaScript\Plugin\Deploy\Package\Bundle;
3+
4+
use Magento\Deploy\Package\Bundle\RequireJs;
5+
6+
class RequireJsPlugin
7+
{
8+
// protected $scopeConfig;
9+
//
10+
// public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig)
11+
// {
12+
// $this->scopeConfig = $scopeConfig;
13+
// }
14+
15+
public function aroundAddFile(RequireJs $subject, callable $proceed, $filePath, $sourcePath, $contentType) {
16+
17+
// $jsOptimization = $this->scopeConfig->getValue('mfrocketjavascript/enable_javaScript_bundling_optimization', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
18+
// var_dump($jsOptimization); exit();
19+
return $proceed($filePath, $sourcePath, $contentType);
20+
}
21+
}

etc/adminhtml/system.xml

+11-1
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,20 @@
2323
<frontend_model>Magefan\RocketJavaScript\Block\Adminhtml\System\Config\Form\Info</frontend_model>
2424
</field>
2525
<field id="enabled" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="20" translate="label" type="select">
26-
<label>Enabled</label>
26+
<label>Enabled Deferred JavaScript</label>
2727
<comment>If enabled all JavaScript on storefront will be moved to the end of the page.</comment>
2828
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
2929
</field>
30+
<field id="enable_javaScript_bundling_optimization" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="30" translate="label" type="select">
31+
<label>Enable JavaScript Bundling Optimization</label>
32+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
33+
</field>
34+
<field id="included_in_bundling" showInDefault="1" showInStore="1" showInWebsite="1" sortOrder="40" translate="label" type="textarea">
35+
<label>Included In Bundling</label>
36+
<depends>
37+
<field id="enable_javaScript_bundling_optimization">1</field>
38+
</depends>
39+
</field>
3040
</group>
3141
</section>
3242
</system>

etc/config.xml

+202
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
<?xml version="1.0"?>
2+
<!--
3+
/**
4+
* Copyright © Magefan ([email protected]). All rights reserved.
5+
* See LICENSE.txt for license details (http://opensource.org/licenses/osl-3.0.php).
6+
*
7+
* Glory to Ukraine! Glory to the heroes!
8+
*/
9+
-->
10+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
11+
<default>
12+
<mfrocketjavascript>
13+
<general>
14+
<included_in_bundling>
15+
'jquery/jquery.mobile.custom.min.js',
16+
'mage/dataPost.min.js',
17+
'mage/bootstrap.min.js',
18+
'mage/translate-inline.min.js',
19+
'mage/utils/arrays.min.js',
20+
'FormData.min.js',
21+
'MutationObserver.min.js',
22+
'jquery/jquery.metadata.min.js',
23+
'mage/loader.min.js',
24+
'Magento_Wishlist/js/add-to-wishlist.min.js',
25+
'Magento_PageCache/js/page-cache.min.js',
26+
'Magento_Cookie/js/require-cookie.min.js',
27+
'Magento_Ui/js/core/app.min.js',
28+
'mage/dropdown.min.js',
29+
'Magento_Search/form-mini.min.js',
30+
'magnifier/magnify.min.js',
31+
'Magento_ProductVideo/js/fotorama-add-video-events.min.js',
32+
'Magento_Review/js/error-placement.min.js',
33+
'Magento_Review/js/validate-review.min.js',
34+
'Magento_Catalog/js/upsell-products.min.js',
35+
'mage/cookies.min.js',
36+
'MagePal_GoogleTagManager/js/datalayer.min.js',
37+
'Magento_Ui/js/block-loader.min.js',
38+
'Magento_Review/js/process-reviews.min.js',
39+
'Magento_Customer/js/section-config.min.js',
40+
'Magento_Customer/js/customer-data.min.js',
41+
'Magento_Customer/js/invalidation-processor.min.js',
42+
'Magento_Catalog/js/product/view/provider.min.js',
43+
'magnifier/magnifier.min.js',
44+
'Magento_Catalog/js/gallery.min.js',
45+
'Magento_Ui/js/core/renderer/types.min.js',
46+
'Magento_Ui/js/core/renderer/layout.min.js',
47+
'Plumrocket_SocialLoginFree/js/sharepopup.min.js',
48+
'Magento_Catalog/js/view/compare-products.min.js',
49+
'Magento_Checkout/js/view/minicart.min.js',
50+
'Magento_Ui/js/lib/core/collection.min.js',
51+
'Magento_Tax/js/view/checkout/minicart/subtotal/totals.min.js',
52+
'Magento_Msrp/js/view/checkout/minicart/subtotal/totals.min.js',
53+
'Magento_Catalog/js/view/image.min.js',
54+
'Magento_Review/js/view/review.min.js',
55+
'Plumrocket_SocialLoginFree/js/view/customer/authentication-popup.min.js',
56+
'Magento_Captcha/js/view/checkout/loginCaptcha.min.js',
57+
'Mirasvit_SearchAutocomplete/js/injection.min.js',
58+
'Mirasvit_SearchAutocomplete/js/autocomplete.min.js',
59+
'Mirasvit_SearchAutocomplete/js/provider.min.js',
60+
'Mirasvit_SearchAutocomplete/js/popular.min.js',
61+
'Magento_Customer/js/view/customer.min.js',
62+
'Magento_Theme/js/view/messages.min.js',
63+
'Magento_Catalog/js/storage-manager.min.js',
64+
'Magento_Ui/js/view/messages.min.js',
65+
'MSP_ReCaptcha/js/ui-messages-mixin.min.js',
66+
'Magento_Ui/js/lib/core/element/element.min.js',
67+
'mage/decorate.min.js',
68+
'mage/storage.min.js',
69+
'Magento_Catalog/js/product/storage/storage-service.min.js',
70+
'Magento_Checkout/js/sidebar.min.js',
71+
'mage/gallery/gallery.min.js', //!!!!!
72+
'Mirasvit_SearchAutocomplete/js/lib/jquery.highlight.min.js',
73+
'Magento_Ui/js/form/form.min.js',
74+
'Magento_Customer/js/action/login.min.js',
75+
'Magento_Customer/js/model/authentication-popup.min.js',
76+
'mage/url.min.js',
77+
'Magento_Ui/js/modal/alert.min.js',
78+
'Magento_Ui/js/model/messageList.min.js',
79+
'MSP_ReCaptcha/js/registry.min.js',
80+
'Magento_Ui/js/lib/core/element/links.min.js',
81+
'Magento_Captcha/js/view/checkout/defaultCaptcha.min.js',
82+
'Magento_Captcha/js/model/captchaList.min.js',
83+
'Magento_Catalog/js/product/storage/data-storage.min.js',
84+
'Magento_Catalog/js/product/storage/ids-storage-compare.min.js',
85+
'fotorama/fotorama.min.js',
86+
'Magento_Ui/js/lib/spinner.min.js',
87+
'mage/requirejs/resolver.min.js',
88+
'Magento_Ui/js/form/adapter.min.js',
89+
'Magento_Ui/js/model/messages.min.js',
90+
'Magento_Captcha/js/model/captcha.min.js',
91+
'Magento_Captcha/js/action/refresh.min.js',
92+
'Magento_Customer/js/invalidation-rules/website-rule.min.js',
93+
'Magento_Catalog/js/product/query-builder.min.js',
94+
'Magento_Theme/js/responsive.min.js',
95+
'Magento_Theme/js/theme.min.js',
96+
'jquery/jquery.validate.min.js',
97+
'js/responsive.min.js',
98+
'js/theme.min.js',
99+
'mage/translate.min.js',
100+
'Magefan_LazyLoad/js/jquery.unveil.min.js',
101+
'requirejs/domReady.min.js',
102+
'jquery/jquery.cookie.min.js',
103+
'Plumrocket_SocialLoginFree/js/pslogin.min.js',
104+
'Smartwave_Megamenu/js/sw_megamenu.min.js',
105+
'mage/tooltip.min.js',
106+
'Magento_Catalog/product/view/validation.min.js',
107+
'Amasty_Cart/js/amcart.min.js',
108+
'mage/mage.min.js',
109+
'Magento_Catalog/js/catalog-add-to-cart.min.js',
110+
'Magento_Catalog/js/price-box.min.js',
111+
'owl.carousel/owl.carousel.min.js',
112+
'mage/template.min.js',
113+
'Magento_Ui/js/modal/confirm.min.js',
114+
'mage/common.min.js',
115+
'jquery/jquery-migrate.min.js',
116+
'jquery/jquery.storageapi.min.js',
117+
'jquery/jquery-ui.min.js',
118+
'Magento_Catalog/js/price-utils.min.js',
119+
'underscore.min.js',
120+
'mage/apply/main.min.js',
121+
'Magento_Ui/js/lib/knockout/bootstrap.min.js',
122+
'mage/tabs.min.js',
123+
'matchMedia.min.js',
124+
'mage/smart-keyboard-handler.min.js',
125+
'mage/ie-class-fixer.min.js',
126+
'js/jquery.stellar.min.js',
127+
'knockoutjs/knockout.min.js',
128+
'knockoutjs/knockout-es5.min.js',
129+
'mage/collapsible.min.js',
130+
'mage/apply/scripts.min.js',
131+
'Magento_Ui/js/lib/knockout/template/engine.min.js',
132+
'Magento_Ui/js/lib/knockout/bindings/bootstrap.min.js',
133+
'Magento_Ui/js/lib/knockout/extender/observable_array.min.js',
134+
'Magento_Ui/js/lib/knockout/extender/bound-nodes.min.js',
135+
'knockoutjs/knockout-repeat.min.js',
136+
'knockoutjs/knockout-fast-foreach.min.js',
137+
'mage/utils/wrapper.min.js',
138+
'Magento_Ui/js/lib/core/events.min.js',
139+
'es6-collections.min.js',
140+
'Magento_Ui/js/lib/knockout/template/renderer.min.js',
141+
'Magento_Ui/js/lib/knockout/bindings/resizable.min.js',
142+
'Magento_Ui/js/lib/knockout/bindings/i18n.min.js',
143+
'Magento_Ui/js/lib/knockout/bindings/scope.min.js',
144+
'Magento_Ui/js/lib/knockout/bindings/range.min.js',
145+
'Magento_Ui/js/lib/knockout/bindings/mage-init.min.js',
146+
'Magento_Ui/js/lib/knockout/bindings/keyboard.min.js',
147+
'Magento_Ui/js/lib/knockout/bindings/optgroup.min.js',
148+
'Magento_Ui/js/lib/knockout/bindings/after-render.min.js',
149+
'Magento_Ui/js/lib/knockout/bindings/autoselect.min.js',
150+
'Magento_Ui/js/lib/knockout/bindings/datepicker.min.js',
151+
'Magento_Ui/js/lib/knockout/bindings/outer_click.min.js',
152+
'Magento_Ui/js/lib/knockout/bindings/fadeVisible.min.js',
153+
'Magento_Ui/js/lib/knockout/bindings/collapsible.min.js',
154+
'Magento_Ui/js/lib/knockout/bindings/staticChecked.min.js',
155+
'Magento_Ui/js/lib/knockout/bindings/simple-checked.min.js',
156+
'Magento_Ui/js/lib/knockout/bindings/bind-html.min.js',
157+
'Magento_Ui/js/lib/knockout/bindings/tooltip.min.js',
158+
'Magento_Ui/js/lib/knockout/template/observable_source.min.js',
159+
'Magento_Ui/js/lib/logger/console-logger.min.js',
160+
'Magento_Ui/js/lib/view/utils/async.min.js',
161+
'Magento_Ui/js/lib/registry/registry.min.js',
162+
'mage/utils/main.min.js',
163+
'Magento_Ui/js/lib/knockout/template/loader.min.js',
164+
'mage/calendar.min.js',
165+
'moment.min.js',
166+
'mage/validation/validation.min.js',
167+
'Magento_Ui/js/lib/core/storage/local.min.js',
168+
'Magento_Ui/js/lib/logger/logger.min.js',
169+
'Magento_Ui/js/lib/logger/entry-factory.min.js',
170+
'Magento_Ui/js/lib/logger/console-output-handler.min.js',
171+
'Magento_Ui/js/lib/logger/formatter.min.js',
172+
'Magento_Ui/js/lib/logger/message-pool.min.js',
173+
'Magento_Ui/js/lib/logger/levels-pool.min.js',
174+
'Magento_Ui/js/lib/logger/logger-utils.min.js',
175+
'Magento_Ui/js/lib/view/utils/dom-observer.min.js',
176+
'Magento_Ui/js/lib/view/utils/bindings.min.js',
177+
'jquery/jquery-ui-timepicker-addon.min.js',
178+
'mage/validation.min.js',
179+
'Magento_Ui/js/lib/logger/entry.min.js',
180+
'Magento_Ui/js/modal/modal.min.js',
181+
'mage/requirejs/text.min.js',
182+
'Magento_Ui/js/lib/core/class.min.js',
183+
'mage/utils/template.min.js',
184+
'mage/utils/compare.min.js',
185+
'mage/utils/misc.min.js',
186+
'mage/utils/objects.min.js',
187+
'mage/utils/strings.min.js',
188+
'Magento_Ui/js/lib/key-codes.min.js',
189+
'jquery.min.js',
190+
'mage/requirejs/static.min.js',
191+
'mage/requirejs/mixins.min.js',
192+
'requirejs-config.min.js',
193+
'fancybox/js/jquery.fancybox.min.js',
194+
'Magento_Catalog/js/jquery.zoom.min.js',
195+
'Magento_ProductVideo/js/load-player.min.js',
196+
'Magento_Catalog/js/product/storage/ids-storage.min.js',
197+
'Mirasvit_SearchAutocomplete/js/navigation.min.js',
198+
</included_in_bundling>
199+
</general>
200+
</mfrocketjavascript>
201+
</default>
202+
</config>

etc/di.xml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0"?>
2+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
3+
<type name="Magento\Deploy\Package\Bundle\RequireJs">
4+
<plugin name="magefan_rocketjavascript_plugin_deploy_package_bundle_requirejs"
5+
type="Magefan\RocketJavaScript\Plugin\Deploy\Package\Bundle\RequireJsPlugin" sortOrder="10" />
6+
</type>
7+
</config>

0 commit comments

Comments
 (0)