common-shakeify
common-shakeify copied to clipboard
v1.1 has a bug compared to v0 and v1.0: require can't take a number
I get this error output in my tests:
node:internal/validators:114
throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "id" argument must be of type string. Received type number (298)
at new NodeError (node:internal/errors:388:5)
at validateString (node:internal/validators:114:11)
at Module.require (node:internal/modules/cjs/loader:1005:3)
at require (node:internal/modules/cjs/helpers:102:18)
I suspect this was introduced in #31.
The browserify prelude uses the require
function from the environment if a module is required that is not part of the bundle. That's mostly for bundle splitting but when running the bundle in Node.js, it picks up the Node.js require
.
It seems like common-shakeify is somehow removing a module from the bundle but not removing the associated require
call completely.
I would expect that, at the least, any require with an ID that doesn't exist in the bundle is replaced with the original name, for both fallback and debugging purposes :-)
Maybe that would always be a useful "final step" in any browserify bundle?
ping @goto-bus-stop