We love ESM and think it is a great step in the right direction. Unfortunately like many developers, we still have to support CommonJS and cannot simply switch everything to ESM. The fact that some maintainers decided to make popular packages ESM-only is a problem, especially since using the older CommonJS versions of their packages means we're stuck without security fixes.
Maintaining a hybrid ESM/CommonJS package is not hard and can actually be automated. This project aims at providing forks for some of the more popular ESM-only packages and patch in CommonJS support.
Contributors are always welcome!
Is a package missing? Please request it here.
@esm2cjs/aggregate-error
- Forked from sindresorhus/aggregate-error@esm2cjs/cacheable-lookup
- Forked from szmarczak/cacheable-lookup@esm2cjs/cacheable-request
- Forked from jaredwray/cacheable-request@esm2cjs/clean-stack
- Forked from sindresorhus/clean-stack@esm2cjs/del
- Forked from sindresorhus/del@esm2cjs/escape-string-regexp
- Forked from sindresorhus/escape-string-regexp@esm2cjs/execa
- Forked from sindresorhus/execa@esm2cjs/fetch-blob
- Forked from node-fetch/fetch-blob@esm2cjs/form-data-encoder
- Forked from octet-stream/form-data-encoder@esm2cjs/FormData
- Forked from jimmywarting/FormData@esm2cjs/globby
- Forked from sindresorhus/globby@esm2cjs/got
- Forked from sindresorhus/got@esm2cjs/http-timer
- Forked from szmarczak/http-timer@esm2cjs/human-signals
- Forked from ehmicky/human-signals@esm2cjs/indent-string
- Forked from sindresorhus/indent-string@esm2cjs/ip-regex
- Forked from sindresorhus/ip-regex@esm2cjs/is
- Forked from sindresorhus/is@esm2cjs/is-ip
- Forked from sindresorhus/is-ip@esm2cjs/is-online
- Forked from sindresorhus/is-online@esm2cjs/is-path-cwd
- Forked from sindresorhus/is-path-cwd@esm2cjs/is-path-inside
- Forked from sindresorhus/is-path-inside@esm2cjs/is-stream
- Forked from sindresorhus/is-stream@esm2cjs/lowercase-keys
- Forked from sindresorhus/lowercase-keys@esm2cjs/mimic-fn
- Forked from sindresorhus/mimic-fn@esm2cjs/mimic-response
- Forked from sindresorhus/mimic-response@esm2cjs/node-data-uri-to-buffer
- Forked from TooTallNate/node-data-uri-to-buffer@esm2cjs/node-fetch
- Forked from node-fetch/node-fetch@esm2cjs/normalize-url
- Forked from sindresorhus/normalize-url@esm2cjs/npm-run-path
- Forked from sindresorhus/npm-run-path@esm2cjs/onetime
- Forked from sindresorhus/onetime@esm2cjs/p-any
- Forked from sindresorhus/p-any@esm2cjs/p-cancelable
- Forked from sindresorhus/p-cancelable@esm2cjs/p-limit
- Forked from sindresorhus/p-limit@esm2cjs/p-map
- Forked from sindresorhus/p-map@esm2cjs/p-queue
- Forked from sindresorhus/p-queue@esm2cjs/p-some
- Forked from sindresorhus/p-some@esm2cjs/p-timeout
- Forked from sindresorhus/p-timeout@esm2cjs/path-key
- Forked from sindresorhus/path-key@esm2cjs/public-ip
- Forked from sindresorhus/public-ip@esm2cjs/responselike
- Forked from sindresorhus/responselike@esm2cjs/slash
- Forked from sindresorhus/slash@esm2cjs/strip-final-newline
- Forked from sindresorhus/strip-final-newline@esm2cjs/yocto-queue
- Forked from sindresorhus/yocto-queue