evanw / node-source-map-support

Adds source map support to node.js (for stack traces)
MIT License
2.16k stars 223 forks source link

Why use Buffer as an implicit dependency? #95

Open viddo opened 9 years ago

viddo commented 9 years ago

:point_up: :point_right: https://github.com/evanw/node-source-map-support/blob/6296f616ca56fc1e1ced36ea15a2eb43d4227c54/source-map-support.js#L111

Background: We (https://github.com/CartoDB/cartodb) suffered a Uncaught RangeError: Maximum call stack size exceeded exception on uncaught exceptions after upgrading browserify. I found some similar reported stuff here, e.g. #86 and #93, but after some investigation I found the culprit to be the implicit dependency of buffer used at the line above.

Since there's no reference to this module in this repo I presume that it's accessible through the browserify module? Considering it's a key piece for this module to work, why not define the dependency in this package?

That said, there's a fix but it's not yet released (v3.4.2), so my temporary workaround to this was to override the implicit dependency, see: https://github.com/CartoDB/cartodb/pull/5171/files The fix was released in buffer v3.4.2

cc @tanem who seem to have suffered similar issues, perhaps this also works for you

tanem commented 9 years ago

Thanks @viddo, I didn't realise there was a fix in the buffer module. I raised #94 around this issue too, which also details our workaround. We use webpack, which uses the same buffer implementation as browserify.