12345678910111213141516171819202122232425 |
- const nativeModule = require(`module`);
-
- module.exports = (filename) => {
- // Added in Node v12.2.0
- if (nativeModule.createRequire) {
- return nativeModule.createRequire(filename);
- }
-
- // Added in Node v10.12.0 and deprecated since Node v12.2.0
- if (nativeModule.createRequireFromPath) {
- return nativeModule.createRequireFromPath(filename);
- }
-
- // Polyfill
- return _createRequire(filename);
- };
-
- // Polyfill
- function _createRequire (filename) {
- const mod = new nativeModule.Module(filename, null)
- mod.filename = filename
- mod.paths = nativeModule.Module._nodeModulePaths(path.dirname(filename))
- mod._compile(`module.exports = require;`, filename)
- return mod.exports
- }
|