Code Monkey home page Code Monkey logo

Comments (8)

koresar avatar koresar commented on June 9, 2024 1

Wow. Your know more than me!

I heard this might be a good option to publish module like stampit https://github.com/developit/microbundle

from stampit.

koresar avatar koresar commented on June 9, 2024 1

We accept PRs πŸ˜‰
Even half baked PRs πŸ˜‰

from stampit.

koresar avatar koresar commented on June 9, 2024

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?

from stampit.

jdittrich avatar jdittrich commented on June 9, 2024

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.

from stampit.

jdittrich avatar jdittrich commented on June 9, 2024

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")

from stampit.

koresar avatar koresar commented on June 9, 2024

from stampit.

PopGoesTheWza avatar PopGoesTheWza commented on June 9, 2024

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.

from stampit.

koresar avatar koresar commented on June 9, 2024

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. :)

from stampit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.