secret.js icon indicating copy to clipboard operation
secret.js copied to clipboard

Build to ES module / enable tree shaking

Open egasimus opened this issue 3 years ago • 1 comments

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, [email protected] (and the similarly packaged [email protected]) 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.

Screenshot from 2022-10-11 03-05-39

egasimus avatar Oct 11 '22 00:10 egasimus

Would love any contribution you can offer!

assafmo avatar Jan 24 '23 09:01 assafmo