Open
Description
Now that cjs-module-lexer is battle-tested (it powers CommonJS in Node as of 14.17), we should switch to it. This gives us a clean way to support CJS-->ESM transformations like we're already doing, but without the horrible regex-based implementation I cobbled together.
- inline my forked copy of
cjs-module-lexer
's JS version withrequire()
tracking - create a new
lib/transform-cjs.js
module that wrapscjs-module-lexer
(similar tolib/transform-imports.js
) - replace fast-cjs-plugin.js implementation with a call to the new library
- add/improve CommonJS tests
(improved in Fixrequire()()
in production bundle #156)