npm-esm-vs-cjs icon indicating copy to clipboard operation
npm-esm-vs-cjs copied to clipboard

Many modules labeled as esm can be loaded by `require()` (prior to `require(esm)`)

Open joyeecheung opened this issue 1 year ago • 3 comments

When I was testing out https://github.com/nodejs/node/pull/55085/, to get a sense of what modules couldn't be loaded before require(esm) is supported but could be loaded after it's unflagged, I have this script to test loading some high-impact packages locally using require(), and it seems out of 662 packages labeled as esm, 103 could already be loaded by require() even without require(esm), so they are probably dual.

Here is the list I've found:

@adobe/css-tools
@algolia/client-analytics
@algolia/client-common
@algolia/client-personalization
@algolia/client-search
@algolia/requester-node-http
@apollo/client
@assemblyscript/loader
@codemirror/language
@codemirror/state
@codemirror/view
@commitlint/cli
@es-joy/jsdoccomment
@eslint/config-array
@eslint/object-schema
@fal-works/esbuild-plugin-global-externals
@headlessui/react
@humanwhocodes/module-importer
@humanwhocodes/retry
@kurkle/color
@lezer/common
@lezer/lr
@octokit/tsconfig
@pkgr/core
@pkgr/utils
@selderee/plugin-htmlparser2
@sentry/nextjs
@ungap/promise-all-settled
@wry/caches
@wry/context
@wry/equality
@wry/trie
algoliasearch
array-back
axios
binaryextensions
byte-size
camel-case
canvg
capital-case
codemirror
command-line-args
command-line-usage
constant-case
crelt
css-declaration-sorter
dot-case
filesize
find-replace
fs-extra
get-package-type
get-tsconfig
git-hooks-list
header-case
html-escaper
html-to-text
is-lower-case
is-upper-case
leac
lines-and-columns
lmdb
marked-terminal
mlly
no-case
optimism
orderedmap
p-finally
param-case
parse5
parse5-htmlparser2-tree-adapter
parse5-parser-stream
parseley
pascal-case
path-case
prosemirror-commands
prosemirror-history
prosemirror-keymap
prosemirror-model
prosemirror-state
prosemirror-transform
react-chartjs-2
react-easy-router
resolve-pkg-maps
rope-sequence
selderee
sentence-case
snake-case
superstruct
synckit
table-layout
textextensions
tiny-lru
tinybench
tinyspy
trim-right
ts-invariant
ts-node
typical
unicode-properties
upper-case
upper-case-first
w3c-keyname
wordwrapjs

joyeecheung avatar Oct 01 '24 15:10 joyeecheung