Currently we generate output that ends with .call(this). This works fine in a global context. It would, however, be nice to be able to generate an output that doesn't assume that this is the global context so that it can run inside of a "module" and still be able to reach for the global object. In this context this is something else.
Perhaps we can detect if the global variable is available in the scope and conditionally use that? Otherwise fallback to this? I.e. .call(global || this)
cc @kittens
Allowing module.exports and exports to be assigned to in this context would be good too. We just need to define some intrinsics for that.
I have a webpack bundle that has its target: "node". The bundle includes references to the real, not mocked, module, process, and require (to load fs or path). When I run prepack it errors out with:
module is not defined
ReferenceError
The output.libraryTarget is 'commonjs2' which means it's exporting to module.exports = ....
Most helpful comment
I have a webpack bundle that has its
target: "node". The bundle includes references to the real, not mocked,module,process, andrequire(to loadfsorpath). When I run prepack it errors out with:The
output.libraryTargetis'commonjs2'which means it's exporting tomodule.exports = ....