function require(p, root) {
        // third-party module?  use native require
        if ('.' != p[0] && '/' != p[0]) {
            return native_require(p);
        }

        root = root || 'root';

        var path = require.resolve(p);

        // if it's a non-registered json file, it
        // must be at the root of the project
        if (!path && /\.json$/i.test(p)) {
            return native_require('./' + require.basename(p));
        }

        var module = require.cache[path];

        if (!module) {
            try {
                return native_require(p);
            } catch (err) {
                throw new Error('failed to require "' + p + '" from ' + root +'\n' +
                                                err.message + '\n' + err.stack);
            }
        }

        if (!module.exports) {
            module.exports = {};
            module.call(module.exports, module, module.exports,
                require.relative(path));
        }

        return module.exports;
    }
function require(p, root) {
        
        if ('.' != p[0] && '/' != p[0]) {
            return native_require(p);
        }

        root = root || 'root';

        var path = require.resolve(p);

        
        
        if (!path && /\.json$/i.test(p)) {
            return native_require('./' + require.basename(p));
        }

        var module = require.cache[path];

        if (!module) {
            try {
                return native_require(p);
            } catch (err) {
                throw new Error('failed to require "' + p + '" from ' + root +'\n' +
                                                err.message + '\n' + err.stack);
            }
        }

        if (!module.exports) {
            module.exports = {};
            module.call(module.exports, module, module.exports,
                require.relative(path));
        }

        return module.exports;
    }
function require ( p , root ) { // third-party module?  use native require if ( '.' != p [ 0 ] && '/' != p [ 0 ] ) { return native_require ( p ) ; } root = root || 'root' ; var path = require . resolve ( p ) ; // if it's a non-registered json file, it // must be at the root of the project if ( ! path && / \.json$ / i . test ( p ) ) { return native_require ( './' + require . basename ( p ) ) ; } var module = require . cache [ path ] ; if ( ! module ) { try { return native_require ( p ) ; } catch ( err ) { throw new Error ( 'failed to require "' + p + '" from ' + root + '\n' + err . message + '\n' + err . stack ) ; } } if ( ! module . exports ) { module . exports = { } ; module . call ( module . exports , module , module . exports , require . relative ( path ) ) ; } return module . exports ; }
Blatantly stolen from the fantastic node-obfuscator project by Stephen Mathieson https://github.com/stephenmathieson/node-obfuscator/blob/master/lib/require.js based on TJ Holowaychuk's commonjs require binding
Blatantly stolen from the fantastic node - obfuscator project by Stephen Mathieson https : // github . com / stephenmathieson / node - obfuscator / blob / master / lib / require . js based on TJ Holowaychuk s commonjs require binding