fix(webpack): es module polyfill handling of createRequire

This commit is contained in:
Nathan Walker
2025-08-28 16:09:50 -07:00
parent a91cc8f201
commit f8e9808d74
2 changed files with 17 additions and 0 deletions

View File

@@ -134,6 +134,8 @@ export default function (config: Config, env: IWebpackEnv = _env): Config {
'mdn-data/css/at-rules.json': require.resolve(
'../polyfills/mdn-data-at-rules.js',
),
// Ensure imports of the Node 'module' builtin resolve to our polyfill
module: require.resolve('../polyfills/module.js'),
},
});

View File

@@ -27,6 +27,21 @@ function createRequire(filename: string) {
};
}
// CommonJS export
module.exports = {
createRequire: createRequire,
};
// Provide a named export for ESM consumers: `import { createRequire } from 'module'`
try {
Object.defineProperty(module.exports, 'createRequire', {
enumerable: true,
value: createRequire,
});
// Also export under an __esModule flag for certain bundlers
Object.defineProperty(module.exports, '__esModule', {
value: true,
});
} catch (e) {
// ignore in environments where defineProperty is unavailable
}