(This came up in https://github.com/daurnimator/lua.vm.js/issues/57#issuecomment-235377158)
In node.js, some functions/objects are not true globals, but 'local to each module', e.g. from https://nodejs.org/api/all.html#globals_require
require isn't actually a global but rather local to each module.
global.require
seems to work in the node.js REPL:
$ node
> require
{ [Function: require]
resolve: [Function: resolve],
main: undefined,
extensions: { '.js': [Function], '.json': [Function], '.node': [Function] },
cache: {} }
> global.require
{ [Function: require]
resolve: [Function: resolve],
main: undefined,
extensions: { '.js': [Function], '.json': [Function], '.node': [Function] },
cache: {} }
But it doesn't work in a file.
How are require
, module
, exports
, etc. implemented?
Is there a way to reliably access require
given global
?