[wp-trac] [WordPress Trac] #64734: WordPress ZIP size grew 20MB in 7.0 due to adding the vips library

WordPress Trac noreply at wordpress.org
Tue Mar 17 20:51:25 UTC 2026


#64734: WordPress ZIP size grew 20MB in 7.0 due to adding the vips library
------------------------------------+------------------------------
 Reporter:  berislav.grgicak        |       Owner:  adamsilverstein
     Type:  defect (bug)            |      Status:  reopened
 Priority:  high                    |   Milestone:  7.0
Component:  General                 |     Version:  trunk
 Severity:  major                   |  Resolution:
 Keywords:  dev-feedback has-patch  |     Focuses:
------------------------------------+------------------------------

Comment (by zieladam):

 The latest filesize stats:

   || Variant || Compressed (zip) || Uncompressed ||
   || 6.9 || 27.6 MB || 72.6 MB ||
   || 7.0 beta 5 || 42.4 MB || 118.8 MB ||

 == The ZIP file size

 Beta 5 is about 15MB larger than 6.9.

 === The vips library

 ~10MB can be explained by the `vips` library. Without the `wp-
 includes/js/dist/script-modules/vips/` directory, the zip is 32M. However,
 if I remove just the `worker.min.js` file and zip again, the archive is
 37MB. We've just saved 5MB!

 I suggest deleting `worker.min.js` and always using `worker.js`. They're
 approximately the same size and the benefit of keeping both seems
 negligible versus making every Playground user download an additional 5MB.

 I also wonder – what kind of size reduction could we get with a custom
 build procedure for the WASM module? One that would remove all the code
 paths WordPress doesn't rely on?

 === The rest of it

 The remaining ~5MB out of that 15MB increase seems to come from a long
 tail of other changes:

   || File || 6.9 || 7.0 || Change ||
   || `js/dist/components.js` || 2.4 MB || 3.8 MB || +1.4 MB ||
   || `js/dist/editor.js` + `.min.js` || 1.5 MB || 3.5 MB || +2.0 MB ||
   || `js/dist/block-editor.js` + `.min.js` || 3.1 MB || 3.8 MB || +0.6 MB
 ||
   || `js/dist/block-library.js` + `.min.js` || 3.2 MB || 3.7 MB || +0.5 MB
 ||
   || `js/dist/media-utils.js` + `.min.js` || 33 KB || 874 KB || +841 KB ||
   || `css/dist/block-library/` (per-block CSS split) || 880 KB || 4.0 MB
 || +3.1 MB ||
   || `css/dist/editor/` || 256 KB || 640 KB || +384 KB ||
   || `build/routes/` (new admin routing) || — || 5.5 MB || +5.5 MB ||
   || `icons/library/` (332 icon files) || — || 1.3 MB || +1.3 MB ||
   || `php-ai-client/` || — || 956 KB || +956 KB ||
   || New JS packages (sync, theme, upload-media, etc.) || — || ~820 KB ||
 +820 KB ||
   || 66 new `.min.asset.php` dependency manifests || — || 264 KB || +264
 KB ||
   || `codemirror/espree.min.js` || — || 247 KB || +247 KB ||
   || `build/pages/` || — || 140 KB || +140 KB ||
   || `ai-client/`, `collaboration/` || — || 80 KB || +80 KB ||

 I don't see an easy solution to that ¯\_(ツ)_/¯

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/64734#comment:20>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list