• 
      

    Provide explicit ESM and CommonJS exports.

    Review Request #13556 — Created Feb. 19, 2024 and submitted

    Information

    Spina
    master

    Reviewers

    Spina now provides exports for ESM modules and for CommonJS modules,
    making it easier to consume in projects.

    The ESM modules export all the Spina exports along with a "Spina"
    default export that encompasses everything as a top-level namespace.

    The CommonJS modules behave as normal, since one is expected to do
    const Spina = require('@beanbag/spina');.

    Notably, we are not setting "type": "module" in package.json, as our
    main export is a UMD module and not a ESM module. This is important for
    consumption in browsers, and also for compilation/unit testing in
    general (setting it to "module" breaks all sorts of things).

    There's also a fix that was found in the process where tsc wasn't
    getting run correctly. Once fixed, it found a missing type import,
    which has been addressed.

    Successfully built and consumed Spina.

    Summary ID
    Provide explicit ESM and CommonJS exports.
    Spina now provides exports for ESM modules and for CommonJS modules, making it easier to consume in projects. The ESM modules export all the Spina exports along with a "Spina" default export that encompasses everything as a top-level namespace. The CommonJS modules behave as normal, since one is expected to do `const Spina = require('@beanbag/spina');`. Notably, we are not setting `"type": "module"` in `package.json`, as our main export is a UMD module and not a ESM module. This is important for consumption in browsers, and also for compilation/unit testing in general (setting it to `"module"` breaks all sorts of things).
    45d4eb38a83559a14bbd7584f4e60af715ee90a6
    david
    1. Ship It!
    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to master (bdab863)