Expand my Community achievements bar.

SOLVED

Why is /foundation/jquery-ui.min.js loading on the Publish instance?

Avatar

Level 2

We are trying to cleanup some of the unnecessary dependencies we inherited from legacy CQ5.6.1. We noticed there was a list of jquery-ui.min.js/css loading on the public pages. We understand all /libs, /foundation client libraries serve mostly authoring; therefore we want to start removing some of these from publish instance. Primarily the jquery-ui.

Can you help us understand how are we bringing this into the Publish instance?

We checked the following categories:

cq.jquery, jquery, granite.jquery, cq.foundation-main, cq.foundation, jquery.jcarousel, cq.shared and is nowhere to be found neither as dependency nor embed.

Thanks in advance.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @oscarr38307878 ,

 

You can find jquery-ui in below location: /libs/foundation/clientlibs/jquery-ui

 

chitra-madan_0-1594936749459.png

 

You must be including this category somewhere in your template.

 

If you just want to include this in edit mode then you can do something like this:

<sly data-sly-test="${wcmmode.edit}"
data-sly-call="${clientlib.all @ categories = [
'cq.shared',
'cq.foundation-main',
cq.jquery.ui
]
}"></sly>
 

View solution in original post

7 Replies

Avatar

Employee

There are many clientlibs that are not just specific to authoring. They are also related to how your content/components appear on the UI, lazy loading of assets, etc. If you remove any clientlibs that might be required, it would mess up your UI. You would have to replicate them from author and even rebuilt clientlibs, if needed.

Just do a thorough testing when you perform the cleanup, such that you don't miss anything that could lead to potential issues in the future.

Avatar

Correct answer by
Community Advisor

Hi @oscarr38307878 ,

 

You can find jquery-ui in below location: /libs/foundation/clientlibs/jquery-ui

 

chitra-madan_0-1594936749459.png

 

You must be including this category somewhere in your template.

 

If you just want to include this in edit mode then you can do something like this:

<sly data-sly-test="${wcmmode.edit}"
data-sly-call="${clientlib.all @ categories = [
'cq.shared',
'cq.foundation-main',
cq.jquery.ui
]
}"></sly>
 

Avatar

Level 2

@ChitraMadan thanks for the tip on how to restrict the lib by mode. This would help if it's really a dependency in author. As mentioned earlier, this was legacy from a previous version.

Avatar

Community Advisor

 Hi @oscarr38307878 , 

cq.jquery.ui is the category of jquery ui.  You must have included this in your template/component as category or loaded in as embed/dependency. If you are not consuming jquery ui you can remove it. 

Few specific lib example widgets, or authoring ui you don't need it in publisher.As you need it only in author, you can do instance check to know author or publisher and load it accordingly. 

But be careful while removing other OOTB libraries, that can make functionality impact. You must do good analysis before you go ahead. 

 

 

Avatar

Level 2

Thanks for the validation! @Vaibhavi_J. It must have been added as dependency since it shows in the head. I was having a hard time finding the reference. I'll look into instance check to see if I can locate the component/element in which is called.

Avatar

Level 2
Hey guys, I want to give you an update: So I found out how this cq.jquery-ui.js was brought into publish. Somehow /etc/clientlibs/foundation/personalization was included in one of our custom files, this folder directory carries a long list of libraries that were loading onto the page, one of then was legacy which has cq.jquery-ui as dependency. Also learned that the .accordion method used in our custom js file needs jquery-ui in order to function. I hope it helps someone else with a similar issue.