Skip to content

Use Rolldown's built-in minifier#532

Open
Gold856 wants to merge 1 commit into
Mechanical-Advantage:mainfrom
Gold856:use-rolldown-minifier
Open

Use Rolldown's built-in minifier#532
Gold856 wants to merge 1 commit into
Mechanical-Advantage:mainfrom
Gold856:use-rolldown-minifier

Conversation

@Gold856
Copy link
Copy Markdown
Contributor

@Gold856 Gold856 commented May 22, 2026

It's much faster than Terser, and in most cases, produces smaller output. For complete comparison, I ran three comparisons with Lite and non-Lite bundles: one with just main, one with Terser enabled via minify: false (Rolldown's default minify option of dce-only sets NODE_ENV to development, disabling Terser), and one with Rolldown's minifier (which is from oxc).

This also adds some JSDoc to enable better Intellisense in the Rolldown config. minifyInternalExports is also disabled for non-Lite/non-XR client builds because it only saves space when you're also minifying. This is evident by comparing the main, non-Lite build with this PR's non-Lite build.
main, non-Lite:

<DIR>/main.js  chunk │ size: 285.34 kB
<DIR>/preload.js  chunk │ size: 0.64 kB
<DIR>/chunk/IPAddresses.js          chunk │ size:     0.40 kB
<DIR>/chunk/WPILOGShared.js         chunk │ size:     0.49 kB
<DIR>/chunk/buildConstants.js       chunk │ size:     0.63 kB
<DIR>/rlogWorker.js                 chunk │ size:     0.90 kB
<DIR>/chunk/LoggableType.js         chunk │ size:     0.92 kB
<DIR>/chunk/prepareTransfer.js      chunk │ size:     0.96 kB
<DIR>/renameTab.js                  chunk │ size:     1.30 kB
<DIR>/editFov.js                    chunk │ size:     1.37 kB
<DIR>/betaWelcome.js                chunk │ size:     1.59 kB
<DIR>/editRange.js                  chunk │ size:     1.62 kB
<DIR>/loadRobot.js                  chunk │ size:     2.03 kB
<DIR>/chunk/chunk.js                chunk │ size:     2.16 kB
<DIR>/export.js                     chunk │ size:     2.82 kB
<DIR>/csvWorker.js                  chunk │ size:     3.87 kB
<DIR>/loadField.js                  chunk │ size:     4.29 kB
<DIR>/preferences.js                chunk │ size:     5.36 kB
<DIR>/chunk/util.js                 chunk │ size:     5.57 kB
<DIR>/sourceListHelp.js             chunk │ size:     5.84 kB
<DIR>/chunk/LogField.js             chunk │ size:     6.91 kB
<DIR>/dsLogWorker.js                chunk │ size:     7.80 kB
<DIR>/roadRunnerWorker.js           chunk │ size:     8.10 kB
<DIR>/satellite.js                  chunk │ size:     8.22 kB
<DIR>/download.js                   chunk │ size:    10.35 kB
<DIR>/chunk/RLOGDecoder.js          chunk │ size:    10.81 kB
<DIR>/wpilogWorker.js               chunk │ size:    14.96 kB
<DIR>/chunk/units.js                chunk │ size:    23.20 kB
<DIR>/chunk/Colors.js               chunk │ size:    28.14 kB
<DIR>/chunk/LogUtil.js              chunk │ size:    49.89 kB
<DIR>/xrControls.js                 chunk │ size:    80.69 kB
<DIR>/exportWorker.js               chunk │ size:    90.63 kB
<DIR>/chunk/Log.js                  chunk │ size:   315.81 kB
<DIR>/hub.js                        chunk │ size:   353.54 kB
<DIR>/chunk/VideoRenderer.js        chunk │ size:   492.09 kB
<DIR>/unitConversion.js             chunk │ size: 1,040.27 kB
<DIR>/chunk/CustomSchemas.js        chunk │ size: 1,063.29 kB
<DIR>/licenses.js                   chunk │ size: 1,370.53 kB
<DIR>/chunk/Field3dRendererImpl.js  chunk │ size: 1,409.04 kB
<DIR>/xrClient.js  chunk │ size: 1,127.17 kB

main, minify: false/Terser, non-Lite:

<DIR>/main.js  chunk │ size: 287.27 kB
<DIR>/preload.js  chunk │ size: 0.65 kB
<DIR>/chunk/IPAddresses.js          chunk │ size:     0.40 kB
<DIR>/chunk/WPILOGShared.js         chunk │ size:     0.49 kB
<DIR>/chunk/buildConstants.js       chunk │ size:     0.63 kB
<DIR>/rlogWorker.js                 chunk │ size:     0.91 kB
<DIR>/chunk/LoggableType.js         chunk │ size:     0.92 kB
<DIR>/chunk/prepareTransfer.js      chunk │ size:     0.96 kB
<DIR>/renameTab.js                  chunk │ size:     1.30 kB
<DIR>/editFov.js                    chunk │ size:     1.37 kB
<DIR>/betaWelcome.js                chunk │ size:     1.59 kB
<DIR>/editRange.js                  chunk │ size:     1.62 kB
<DIR>/loadRobot.js                  chunk │ size:     2.03 kB
<DIR>/chunk/chunk.js                chunk │ size:     2.21 kB
<DIR>/export.js                     chunk │ size:     2.82 kB
<DIR>/csvWorker.js                  chunk │ size:     3.88 kB
<DIR>/loadField.js                  chunk │ size:     4.29 kB
<DIR>/preferences.js                chunk │ size:     5.36 kB
<DIR>/chunk/util.js                 chunk │ size:     5.57 kB
<DIR>/sourceListHelp.js             chunk │ size:     5.84 kB
<DIR>/chunk/LogField.js             chunk │ size:     6.91 kB
<DIR>/dsLogWorker.js                chunk │ size:     7.80 kB
<DIR>/roadRunnerWorker.js           chunk │ size:     8.11 kB
<DIR>/satellite.js                  chunk │ size:     8.22 kB
<DIR>/download.js                   chunk │ size:    10.36 kB
<DIR>/chunk/RLOGDecoder.js          chunk │ size:    10.81 kB
<DIR>/wpilogWorker.js               chunk │ size:    14.99 kB
<DIR>/chunk/units.js                chunk │ size:    23.20 kB
<DIR>/chunk/Colors.js               chunk │ size:    28.25 kB
<DIR>/chunk/LogUtil.js              chunk │ size:    51.09 kB
<DIR>/xrControls.js                 chunk │ size:    80.80 kB
<DIR>/exportWorker.js               chunk │ size:    91.07 kB
<DIR>/chunk/Log.js                  chunk │ size:   315.99 kB
<DIR>/hub.js                        chunk │ size:   353.84 kB
<DIR>/chunk/VideoRenderer.js        chunk │ size:   492.18 kB
<DIR>/chunk/CustomSchemas.js        chunk │ size: 1,063.39 kB
<DIR>/unitConversion.js             chunk │ size: 1,087.39 kB
<DIR>/licenses.js                   chunk │ size: 1,370.53 kB
<DIR>/chunk/Field3dRendererImpl.js  chunk │ size: 1,411.94 kB
<DIR>/xrClient.js  chunk │ size: 940.54 kB

This PR, non-Lite:

<DIR>/main.js  chunk │ size: 285.34 kB
<DIR>/preload.js  chunk │ size: 0.64 kB
<DIR>/chunk/IPAddresses.js          chunk │ size:     0.39 kB
<DIR>/chunk/WPILOGShared.js         chunk │ size:     0.48 kB
<DIR>/chunk/buildConstants.js       chunk │ size:     0.62 kB
<DIR>/rlogWorker.js                 chunk │ size:     0.89 kB
<DIR>/chunk/LoggableType.js         chunk │ size:     0.91 kB
<DIR>/chunk/prepareTransfer.js      chunk │ size:     0.95 kB
<DIR>/renameTab.js                  chunk │ size:     1.30 kB
<DIR>/editFov.js                    chunk │ size:     1.37 kB
<DIR>/betaWelcome.js                chunk │ size:     1.58 kB
<DIR>/editRange.js                  chunk │ size:     1.61 kB
<DIR>/loadRobot.js                  chunk │ size:     2.01 kB
<DIR>/chunk/chunk.js                chunk │ size:     2.14 kB
<DIR>/export.js                     chunk │ size:     2.82 kB
<DIR>/csvWorker.js                  chunk │ size:     3.87 kB
<DIR>/loadField.js                  chunk │ size:     4.24 kB
<DIR>/preferences.js                chunk │ size:     5.36 kB
<DIR>/chunk/util.js                 chunk │ size:     5.46 kB
<DIR>/sourceListHelp.js             chunk │ size:     5.83 kB
<DIR>/chunk/LogField.js             chunk │ size:     6.90 kB
<DIR>/dsLogWorker.js                chunk │ size:     7.79 kB
<DIR>/roadRunnerWorker.js           chunk │ size:     8.09 kB
<DIR>/satellite.js                  chunk │ size:     8.14 kB
<DIR>/download.js                   chunk │ size:    10.33 kB
<DIR>/chunk/RLOGDecoder.js          chunk │ size:    10.77 kB
<DIR>/wpilogWorker.js               chunk │ size:    14.92 kB
<DIR>/chunk/units.js                chunk │ size:    23.18 kB
<DIR>/chunk/Colors.js               chunk │ size:    28.11 kB
<DIR>/chunk/LogUtil.js              chunk │ size:    49.70 kB
<DIR>/xrControls.js                 chunk │ size:    80.68 kB
<DIR>/exportWorker.js               chunk │ size:    90.59 kB
<DIR>/chunk/Log.js                  chunk │ size:   315.69 kB
<DIR>/hub.js                        chunk │ size:   353.04 kB
<DIR>/chunk/VideoRenderer.js        chunk │ size:   491.88 kB
<DIR>/unitConversion.js             chunk │ size: 1,040.25 kB
<DIR>/chunk/CustomSchemas.js        chunk │ size: 1,063.27 kB
<DIR>/licenses.js                   chunk │ size: 1,370.52 kB
<DIR>/chunk/Field3dRendererImpl.js  chunk │ size: 1,408.85 kB
<DIR>/xrClient.js  chunk │ size: 944.92 kB

main, Lite:

<DIR>/main.js  chunk │ size: 100.65 kB
<DIR>/chunk/IPAddresses.js          chunk │ size:     0.06 kB
<DIR>/chunk/buildConstants.js       chunk │ size:     0.17 kB
<DIR>/chunk/LoggableType.js         chunk │ size:     0.32 kB
<DIR>/rlogWorker.js                 chunk │ size:     0.43 kB
<DIR>/chunk/prepareTransfer.js      chunk │ size:     0.48 kB
<DIR>/renameTab.js                  chunk │ size:     0.77 kB
<DIR>/editFov.js                    chunk │ size:     0.81 kB
<DIR>/betaWelcome.js                chunk │ size:     0.98 kB
<DIR>/editRange.js                  chunk │ size:     1.00 kB
<DIR>/loadRobot.js                  chunk │ size:     1.06 kB
<DIR>/uploadAsset.js                chunk │ size:     1.11 kB
<DIR>/chunk/chunk.js                chunk │ size:     1.35 kB
<DIR>/loadField.js                  chunk │ size:     2.29 kB
<DIR>/csvWorker.js                  chunk │ size:     2.68 kB
<DIR>/preferences.js                chunk │ size:     3.53 kB
<DIR>/sourceListHelp.js             chunk │ size:     3.69 kB
<DIR>/chunk/util.js                 chunk │ size:     3.86 kB
<DIR>/roadRunnerWorker.js           chunk │ size:     6.03 kB
<DIR>/dsLogWorker.js                chunk │ size:     6.14 kB
<DIR>/download.js                   chunk │ size:     6.65 kB
<DIR>/chunk/RLOGDecoder.js          chunk │ size:     8.22 kB
<DIR>/wpilogWorker.js               chunk │ size:    11.60 kB
<DIR>/chunk/units.js                chunk │ size:    20.88 kB
<DIR>/chunk/Colors.js               chunk │ size:    22.52 kB
<DIR>/chunk/LogUtil.js              chunk │ size:    37.05 kB
<DIR>/chunk/Log.js                  chunk │ size:   230.62 kB
<DIR>/hub.js                        chunk │ size:   624.13 kB
<DIR>/unitConversion.js             chunk │ size:   769.52 kB
<DIR>/chunk/WPILOGShared.js         chunk │ size:   958.78 kB
<DIR>/chunk/Field3dRendererImpl.js  chunk │ size: 1,064.69 kB
<DIR>/licenses.js                   chunk │ size: 1,366.94 kB

main, minify: false/Terser, Lite:

<DIR>/main.js  chunk │ size: 72.45 kB
<DIR>/chunk/IPAddresses.js          chunk │ size:     0.05 kB
<DIR>/chunk/buildConstants.js       chunk │ size:     0.14 kB
<DIR>/chunk/LoggableType.js         chunk │ size:     0.26 kB
<DIR>/rlogWorker.js                 chunk │ size:     0.34 kB
<DIR>/chunk/prepareTransfer.js      chunk │ size:     0.52 kB
<DIR>/renameTab.js                  chunk │ size:     0.63 kB
<DIR>/editFov.js                    chunk │ size:     0.67 kB
<DIR>/betaWelcome.js                chunk │ size:     0.81 kB
<DIR>/editRange.js                  chunk │ size:     0.83 kB
<DIR>/loadRobot.js                  chunk │ size:     0.87 kB
<DIR>/uploadAsset.js                chunk │ size:     0.93 kB
<DIR>/chunk/chunk.js                chunk │ size:     1.12 kB
<DIR>/loadField.js                  chunk │ size:     1.74 kB
<DIR>/csvWorker.js                  chunk │ size:     2.08 kB
<DIR>/sourceListHelp.js             chunk │ size:     2.90 kB
<DIR>/preferences.js                chunk │ size:     2.91 kB
<DIR>/chunk/util.js                 chunk │ size:     2.91 kB
<DIR>/roadRunnerWorker.js           chunk │ size:     4.54 kB
<DIR>/dsLogWorker.js                chunk │ size:     4.78 kB
<DIR>/download.js                   chunk │ size:     5.20 kB
<DIR>/chunk/RLOGDecoder.js          chunk │ size:     5.30 kB
<DIR>/wpilogWorker.js               chunk │ size:     8.76 kB
<DIR>/chunk/Colors.js               chunk │ size:    14.55 kB
<DIR>/chunk/units.js                chunk │ size:    14.86 kB
<DIR>/chunk/LogUtil.js              chunk │ size:    28.19 kB
<DIR>/chunk/Log.js                  chunk │ size:   177.52 kB
<DIR>/hub.js                        chunk │ size:   491.45 kB
<DIR>/unitConversion.js             chunk │ size:   596.69 kB
<DIR>/chunk/WPILOGShared.js         chunk │ size:   748.53 kB
<DIR>/chunk/Field3dRendererImpl.js  chunk │ size:   894.46 kB
<DIR>/licenses.js                   chunk │ size: 1,354.12 kB   

This PR, Lite:

<DIR>/main.js  chunk │ size: 71.64 kB
<DIR>/chunk/IPAddresses.js          chunk │ size:     0.05 kB
<DIR>/chunk/buildConstants.js       chunk │ size:     0.13 kB
<DIR>/chunk/LoggableType.js         chunk │ size:     0.26 kB
<DIR>/rlogWorker.js                 chunk │ size:     0.34 kB
<DIR>/chunk/prepareTransfer.js      chunk │ size:     0.40 kB
<DIR>/renameTab.js                  chunk │ size:     0.61 kB
<DIR>/editFov.js                    chunk │ size:     0.65 kB
<DIR>/betaWelcome.js                chunk │ size:     0.81 kB
<DIR>/editRange.js                  chunk │ size:     0.82 kB
<DIR>/loadRobot.js                  chunk │ size:     0.84 kB
<DIR>/uploadAsset.js                chunk │ size:     0.92 kB
<DIR>/chunk/chunk.js                chunk │ size:     1.08 kB
<DIR>/loadField.js                  chunk │ size:     1.71 kB
<DIR>/csvWorker.js                  chunk │ size:     2.01 kB
<DIR>/sourceListHelp.js             chunk │ size:     2.88 kB
<DIR>/preferences.js                chunk │ size:     2.91 kB
<DIR>/chunk/util.js                 chunk │ size:     2.92 kB
<DIR>/roadRunnerWorker.js           chunk │ size:     4.64 kB
<DIR>/dsLogWorker.js                chunk │ size:     4.76 kB
<DIR>/download.js                   chunk │ size:     5.10 kB
<DIR>/chunk/RLOGDecoder.js          chunk │ size:     5.37 kB
<DIR>/wpilogWorker.js               chunk │ size:     8.70 kB
<DIR>/chunk/Colors.js               chunk │ size:    14.25 kB
<DIR>/chunk/units.js                chunk │ size:    14.59 kB
<DIR>/chunk/LogUtil.js              chunk │ size:    27.97 kB
<DIR>/chunk/Log.js                  chunk │ size:   176.75 kB
<DIR>/hub.js                        chunk │ size:   483.23 kB
<DIR>/unitConversion.js             chunk │ size:   593.06 kB
<DIR>/chunk/WPILOGShared.js         chunk │ size:   747.80 kB
<DIR>/chunk/Field3dRendererImpl.js  chunk │ size:   876.05 kB
<DIR>/licenses.js                   chunk │ size: 1,330.72 kB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant