[wp-trac] [WordPress Trac] #30289: Include GSAp in core
WordPress Trac
noreply at wordpress.org
Sat Nov 8 15:46:43 UTC 2014
#30289: Include GSAp in core
--------------------------------+-----------------------------
Reporter: nikolay.yordanov | Owner:
Type: feature request | Status: new
Priority: normal | Milestone: Awaiting Review
Component: External Libraries | Version:
Severity: normal | Keywords:
Focuses: javascript |
--------------------------------+-----------------------------
GSAP (http://greensock.com/gsap) is a great library and it is pretty much
the only way that you can reliably implement complex animations. Its usage
is recommended in Google Developers/Web Fundamentals
(https://developers.google.com/web/fundamentals/look-and-feel/animations
/css-vs-javascript) and performs very well in comparisons to other
animation approaches (http://greensock.com/js/speed.html).
That said, using GSAP is WordPress is an absolute pain.
GSAP is shipped as 19 separate files (you need a special license for
another 5 plugins), and you can only bundle same-version files. You can
see how this can get complicated very quickly - if one plugin includes a
subset of the files from version 1.12, and another includes an
intersecting subset of version 1.14 - neither plugin will work. Plugin
authors can't reasonably expect that all other plugins will be updated in
a timely manner.
The only way to deal with this currently is for every plugin to sandbox
whatever version of GSAP it needs. This means that every plugin using GSAP
loads the same 30-50kB of JS, simply because they don't know whether there
are any other plugins on the page which might use an old version.
This could be solved by registering the 19 free GSAP files in WP core,
thus giving plugin authors a reference version that they need to target.
If you don't want to include the files in core, I'd suggest that their
cdnjs-hosted versions can be used (https://cdnjs.com/libraries/gsap).
------------------
What I am proposing is essentially a short-term fix. A better solution
would involve rethinking the way WP handles JS, as discussed in these
tickets:
https://core.trac.wordpress.org/ticket/23285
https://core.trac.wordpress.org/ticket/26113#comment:1
Also, if there was some kind of a plugin-dependency system in place
(#11308) or a concept of "library" plugins (https://wordpress.org/plugins
/plugin-dependencies), there wouldn't be the need to put any of this in WP
core. Plugins could just declare that they need the plugin which registers
GSAP to be installed.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/30289>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list