From 18b18012d259117f4eefdf134fe21023d9c3dc45 Mon Sep 17 00:00:00 2001 From: mmoz Date: Fri, 17 Sep 2021 14:16:25 +0300 Subject: [PATCH] fix: implement standard-things#877 --- package.json | 4 ++-- src/module.js | 5 +++++ src/shim/module-js-file-loader.js | 8 ++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 src/shim/module-js-file-loader.js diff --git a/package.json b/package.json index 114191176..6bedd8669 100644 --- a/package.json +++ b/package.json @@ -3,9 +3,9 @@ "version": "3.2.25", "description": "Tomorrow's ECMAScript modules today!", "keywords": "commonjs, ecmascript, export, import, modules, node, require", - "repository": "standard-things/esm", + "repository": "irls/esm", "license": "MIT", - "author": "John-David Dalton ", + "author": "irls", "main": "esm.js", "private": true, "runkitExample": "require = require(\"esm\")(module)\nrequire(\"lodash-es\")", diff --git a/src/module.js b/src/module.js index a543ac79a..867bfca2c 100644 --- a/src/module.js +++ b/src/module.js @@ -27,6 +27,7 @@ import staticResolveFilename from "./module/static/resolve-filename.js" import staticResolveLookupPaths from "./module/static/resolve-lookup-paths.js" import staticWrap from "./module/static/wrap.js" import staticWrapper from "./module/static/wrapper.js" +import jsFileLoader from "./shim/module-js-file-loader" const { ELECTRON @@ -51,6 +52,10 @@ const Module = maskFunction(function (id = "", parent) { } }, RealModule) +// Patch the loader for files with .js extension to prevent default +// behaviour of erroring on commonjs syntax in dependencies. +RealModule._extensions[".js"] = jsFileLoader + Module._cache = __non_webpack_require__.cache Module._extensions = { __proto__: null } Module._findPath = staticFindPath diff --git a/src/shim/module-js-file-loader.js b/src/shim/module-js-file-loader.js new file mode 100644 index 000000000..2be9cf533 --- /dev/null +++ b/src/shim/module-js-file-loader.js @@ -0,0 +1,8 @@ +import { readFileSync } from "fs" + +function jsFileLoader(module, filename) { + const content = readFileSync(filename, "utf8") + module._compile(content, filename) +} + +export default jsFileLoader