GithubHelp home page GithubHelp logo

esm2umd's Introduction

esm2umd

Transforms ESM to UMD, i.e. to use ESM by default with UMD as a legacy fallback.

Build Status Publish Status npm

Usage

npx esm2umd MyModule esmFile.js > umdFile.js

MyModule is used as the name of the vanilla JS global.

If the module has a default export, it becomes the value obtained when required.

API

Installation as a dependency is optional (pulls in megabytes of babel), but if so desired exposes the CLI as an API:

import esm2umd from 'esm2umd'

const esmCode = '...'
const umdCode = esm2umd('ModuleName', esmCode)

Example

ESM-first hybrid module with legacy fallback and prepublish build step.

package.json

{
  "type": "module",
  "main": "./umd/index.js",
  "types": "index.d.ts",
  "exports": {
    "import": "./index.js",
    "require": "./umd/index.js"
  },
  "scripts": {
    "build": "npx esm2umd MyModule index.js > umd/index.js",
    "prepublishOnly": "npm run build"
  }
}

Treat .js files in umd/ as CommonJS.

umd/package.json

{
  "type": "commonjs"
}

Keep the generated artifact out of version control to avoid PRs against it.

.gitignore

umd/index.js

For typings, if there is a default export, stick to the "old" format for compatibility.

index.d.ts

export = MyModule;

esm2umd's People

Contributors

dcodeio avatar maxgraey avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

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.