Expand my Community achievements bar.

SOLVED

Upgrading AEM 6.0 JS libraries (i.e. backbone and underscore) to their up to date versions

Avatar

Level 1

Hi,

Recently we have decided to start using Backbone & Underscore as part of our core front-end development. However in AEM 6.0 the granite distibution that ships with the platform has two very outdated versions of these two libraries (Backbone.js 0.9.2 and Underscore.js 1.3.3). Backbone 0.9.2 is very outdated and some of its functions can lead to memory leaks.  For this reason we have decided to upgrade both libraries.

Firstly we decided to create a new client library with our very own namespace, but then noticed that AEM already uses underscore internally at at runtime both instances of the same _underscore variable is running (the OOTB granite version and out own). So the question is can we simply delete the current Backbone & Underscore versions that ship with AEM 6.0 and replace it with the up to date versions (providing they are backwards compatible) or is there a better way of doing this? 

Many thanks,

Filipe

1 Accepted Solution

Avatar

Correct answer by
Level 1

I found a temporary solution using the noconflict backbone and underscore functions, but it would be a good idea in general to find a way to upgrade JS libraries in CQ!

View solution in original post

6 Replies

Avatar

Level 10

I do not recommend replacing these libs.  Never overwrite  /libs or system libraries. You can easily create your own clientlibs folder and place the newer libs in the clientlibs folder. 

Then for your custom AEM component that make use of the newer functionality - reference the clientlibs folder. 

Avatar

Level 10

However, you will see conflicts with multiple versions in author instance but may work good in the publish instance. 

Avatar

Level 1

I've tried that, but it does not work due to multiple versions of the library (i.e. underscore) being loaded in Author.

Avatar

Level 10

I have asked support to look at this. 

Avatar

Level 10

Yes, as I said before, its always a problem in author environment. You can raise a support ticket for the same and see what they have to say !

Avatar

Correct answer by
Level 1

I found a temporary solution using the noconflict backbone and underscore functions, but it would be a good idea in general to find a way to upgrade JS libraries in CQ!