diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2022-12-19 17:09:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-19 17:09:54 +0100 |
commit | 383d40a33bee842a7462fb157f5faca263598d87 (patch) | |
tree | f80323ac9220a3f339bf474a93485f3d2f7d7af0 /ext/node/02_require.js | |
parent | d1f6b519907d3778f02436cf1fcc4f94f563acf8 (diff) |
fix(npm): conditional exports with --node-modules-dir (#17111)
This commit fixes conditional exports in `require()` implementation
if `--node-modules-dir` flag is used.
Diffstat (limited to 'ext/node/02_require.js')
-rw-r--r-- | ext/node/02_require.js | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/ext/node/02_require.js b/ext/node/02_require.js index 2174ff8a9..0f11253f2 100644 --- a/ext/node/02_require.js +++ b/ext/node/02_require.js @@ -303,7 +303,12 @@ // 1. name/.* // 2. @scope/name/.* const EXPORTS_PATTERN = /^((?:@[^/\\%]+\/)?[^./\\%][^/\\%]*)(\/.*)?$/; - function resolveExports(modulesPath, request, parentPath) { + function resolveExports( + modulesPath, + request, + parentPath, + usesLocalNodeModulesDir, + ) { // The implementation's behavior is meant to mirror resolution in ESM. const [, name, expansion = ""] = StringPrototypeMatch(request, EXPORTS_PATTERN) || []; @@ -312,6 +317,7 @@ } return core.ops.op_require_resolve_exports( + usesLocalNodeModulesDir, modulesPath, request, name, @@ -349,7 +355,12 @@ if (curPath && stat(curPath) < 1) continue; if (!absoluteRequest) { - const exportsResolved = resolveExports(curPath, request, parentPath); + const exportsResolved = resolveExports( + curPath, + request, + parentPath, + usesLocalNodeModulesDir, + ); if (exportsResolved) { return exportsResolved; } |