I'm logging the issue here, but the error is due to changes in browserify 8.0.0.
This might be best explained with an example:
A
depends on module B
B'
, which is identical to B
but a separate copy exists for whatever reasonB
is deduped by browserify and points to B'
B
gets routed to the A
bundle, assigned ID of 200
B'
gets routed to the common bundle, assigned ID of 100
A
bundleA
bundle in browserify v7:
200:[function(require,module,exports){ module.exports=require(100) },{"dup":100}]}
A
bundle in browserify v8:
200:[function(require,module,exports){ arguments[4][100][0].apply(exports,arguments) },{"dup":100}]}
This results in an exception Uncaught TypeError: Cannot read property '0' of undefined
because ID 100
is not defined in the current bundle.
This worked in v7 because it used require
, which tries to resolve the module with previously defined require
s from other bundles.
I realize this is an edge case and that if npm
is correctly deduping dependencies, this situation should not occur. And the v8 behaviour is more correct in theory because B
may have different dependencies from B'
. However, assuming that any module is defined in the current bundle is dangerous when factor-bundle is involved.
doublerebel, olizilla, corwin-of-amber and kumavis
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4