Skip to content

Build as ES Module #946

@elvis-pereira

Description

@elvis-pereira

Summary

ES modules are widely supported: MDN, caniuse and offer some advantages, like the ability of bundlers to do tree-shaking.

Basic example

In the most basic setup, only a single line of code would have to change in rollup.config.js:

output: [
    {
      file: pkg.main,
-     format: 'cjs',
+     format: 'es',
      sourcemap: true,
    },
  ]

Motivation

In my code currently I only use the recurrent.LSTM() class, and with the change above I observed a 56% bundle size reduction after tree-shaking. That value will obviously vary from user to user, but there will probably be a reduction in bundle size. If legacy support is important then it's possible to ship both, cjs and esm code, but I personally don't think that this is necessary.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions