esm
webpack-common-shake
esm | webpack-common-shake | |
---|---|---|
2 | 2 | |
5,252 | 914 | |
- | - | |
0.0 | 0.0 | |
8 months ago | about 1 year ago | |
JavaScript | JavaScript | |
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
esm
-
CommonJS Is Hurting JavaScript
> I think the biggest miss was not making mixed mode (default) for Node do it the way webpack/babel, etc did it by default in terms of interop. I get they wanted to make it more implicit to call cjs from esm, in the end it just inhibits conversion of existing libraries as dependencies are now a bigger hurdle.
Huge huge agreement.
I forget the specifics but there was some super tiny corner case around maybe default exports that could potentially create ambiguity & that spawned a multi-year bellyaching around doing anything at all for interop. What Node got was incredibly hard fought for against much resistance to interop.
But the final compromises made everything so much more painful for everyone. So many esm projects but oh look a .eslintrc.cjs, how unsurprising & sad.
It's extra maddening because node had a wonderful just works (except that tiny tiny tiny corner case) interop via @standard-things/esm, which seamlessly let the two worlds interop. It'd been around for years before node started shipping support, and it was no ceremony just works bidirectional interoperability, and it took basically no effort or thought from the developers point of view to use. It sucked seeing us walk back from great, mired by frivolous over concern for a obscure corner-case.
https://github.com/standard-things/esm
-
ERR_REQUIRE_ESM
2) Stay on ES5. Wrap ES6 module(s) with esm adapter. Just like the documentation says:
webpack-common-shake
-
CommonJS Is Hurting JavaScript
While I agree the dynamic nature of CommonJS would be problematic, there were successful projects around treeshaking commonjs[0] that worked really well.
I think dynamic imports have some of the same footguns here, to be honest. Can't deny ESM is easier to statically analyze though, that much appears to be true across the board based on available evidence.
[0]: https://github.com/indutny/webpack-common-shake
-
[AskJS] What are still present issues in contemporary (2022) JavaScript?
Tree shaking in CommonJS is possible: here's a Webpack CommonJS Tree Shaking package.
What are some alternatives?
hello-esm-firebase - 🔥 ESM in Cloud Functions (via Firebase)
proposal-upsert - ECMAScript Proposal, specs, and reference implementation for Map.prototype.upsert
semantic-release - :package::rocket: Fully automated version management and package publishing
meta - Meta discussions and unicorns. Not necessarily in that order.
webpack - A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.
loader - A universal async JS loader.
oletus - Minimal ECMAScript Module test runner
proposal-do-expressions - Proposal for `do` expressions
nanoexpress - Professional backend framework for Node.js
node-fetch - A light-weight module that brings the Fetch API to Node.js
node - Node.js JavaScript runtime ✨🐢🚀✨