Open jdittrich opened 4 years ago
Yes. It is possible. Please, guide me through.
Do I need to add "module": "dist/stampit.module.js",
to the package.json
?
Anything else is needed?
Thanks!
Do I need to add "module": "dist/stampit.module.js", to the package.json? This, too, if I understand it correctly (not an expert on this)
It seems that currently, stampit uses node-compatible common.js-style module.exports
or export to a global variable (see code) and an optional build step via uglyify to get a minimized version of the library.
I guess the best way would be writing ES6 style and converting to common.js via rollup (minimal example). But this might be too much of a change so I understand if this is not priority.
Wow. Your know more than me!
I heard this might be a good option to publish module like stampit https://github.com/developit/microbundle
We accept PRs 😉 Even half baked PRs 😉
Before I cause a mess there – it seems that the code as been ES6 compatible, but was subsequently changed. This seems to have been part of minification, which I do not fully understand (was this for the code to be small itself or for being better minify-able?).
Another thing that is striking is the use of "var1", "var2"… through the code, introduced in "further minification 7" – why var var1
instead of var properties
? (similar changes towards less speaking variable names were also done before, e.g. in "further minification 2")
Your understanding is correct. Are you trying to rewrite to ES6? I would not recommend. Instead, I'd recommend changing the exporting method only. Like, the last (or more) line in the file. Does that make sense?
On Fri., 5 Jun. 2020, 03:31 jdittrich, notifications@github.com wrote:
Before I cause a mess there – it seems that the code as been ES6 compatible, but was subsequently changed https://github.com/stampit-org/stampit/commit/b1086e724bf8a9551e9b643cee8e8b83a4f67a84#diff-d3d1780d19f75055166112db1c679b84R486. This seems to have been part of minification, which I do not fully understand (was this for the code to be small itself or for being better minify-able?). Another thing that is striking is the use of "var1", "var2" https://github.com/stampit-org/stampit/blob/master/src/stampit.js#L5… through the code, introduced in "further minification 7" https://github.com/stampit-org/stampit/commit/c42ccad00d7f42facac3d1d8b593f1d936b63f0f#diff-d3d1780d19f75055166112db1c679b84R5 – why var var1 instead of var properties? (similar changes towards less speaking variable names were also done before, e.g. in "further minification 2")
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/stampit-org/stampit/issues/352#issuecomment-638997796, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAMMEL236GFHTF5AGNKOREDRU7K5LANCNFSM4NQA5SDQ .
Out of curiosity, what are the use cases for ES modules?
One "silly" idea comes to my mind: have the source use ES Module syntax and use TypeScript compiler to compile the CommonJS version.
If there is any other tool chain to transform CommonJS to ESM (or vice versa) I'd gladly give it a look.
Out of curiosity, what are the use cases for ES modules?
The modern tooling usually works fine with both - ES6 exporting and the CJS. However, they work slightly better with ES6 exporting version. There is nothing to treeshake in stampit, so that can't be the main reason.
One "silly" idea comes to my mind: have the source use ES Module syntax and use TypeScript compiler to compile the CommonJS version.
That's a good idea. I was thinking about it a lot myself. Can be done with Babel compiler too. Or Rollup. Or the above mentioned microbundle
.
If there is any other tool chain to transform CommonJS to ESM (or vice versa) I'd gladly give it a look.
Here is my typical approach. I copy the the Preact project setup. :)
I would like to use stampit as ES6 module. However, it currently is only compatible with common.js or global variable use (If I understand correctly).
Is it possible to add an ES6 build of stampit?