The current dist/browser.js is a monolithic minified CJS bundle.
It is my understanding that this format is only preferable if including SecretJS through a <script> tag -- but when using most forms of frontend build systems (Webpack, etc.) it prevents dead code elimination, considerably inflating the final bundle downloaded by the browser. In my case, secretjs@1.4.3 (and the similarly packaged web3@1.8.0) account for nearly half the total bundle size - and we use just a few methods from the the bank and compute APIs...
I suggest it would be beneficial if the browser field in package.json pointed to an unminified and/or sourcemapped ESM build instead. That way the library users could do their own optimization.
The current
dist/browser.js
is a monolithic minified CJS bundle.It is my understanding that this format is only preferable if including SecretJS through a
<script>
tag -- but when using most forms of frontend build systems (Webpack, etc.) it prevents dead code elimination, considerably inflating the final bundle downloaded by the browser. In my case,secretjs@1.4.3
(and the similarly packagedweb3@1.8.0
) account for nearly half the total bundle size - and we use just a few methods from the thebank
andcompute
APIs...I suggest it would be beneficial if the
browser
field inpackage.json
pointed to an unminified and/or sourcemapped ESM build instead. That way the library users could do their own optimization.