From 824323779fe24ccc8332a730d6ec2d6f83ec49d5 Mon Sep 17 00:00:00 2001 From: Jinjiang Date: Thu, 6 Feb 2025 10:22:28 +0800 Subject: [PATCH] fix: webpack peer resolver --- scopes/webpack/webpack/transformers/resolve-peer.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scopes/webpack/webpack/transformers/resolve-peer.ts b/scopes/webpack/webpack/transformers/resolve-peer.ts index 5f62c3d56a5e..7e0c91dac473 100644 --- a/scopes/webpack/webpack/transformers/resolve-peer.ts +++ b/scopes/webpack/webpack/transformers/resolve-peer.ts @@ -1,5 +1,6 @@ import fs, { realpathSync } from 'fs'; import { ResolverFactory, CachedInputFileSystem } from 'enhanced-resolve'; +import resolve from 'resolve'; import findRoot from 'find-root'; import { Logger } from '@teambit/logger'; @@ -11,16 +12,20 @@ import { Logger } from '@teambit/logger'; export function resolvePeerToDirOrFile(peerName: string, logger: Logger, hostRootDir?: string): string | undefined { let resolved; try { - const options = { + const options: { + basedir?: string; + paths: string[]; + } = { // resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise paths: [process.cwd(), __dirname], }; if (hostRootDir) { + options.basedir = hostRootDir; // resolve the host root dir to its real location, as require.resolve is preserve symlink, so we get wrong result otherwise options.paths.unshift(realpathSync(hostRootDir)); } - resolved = require.resolve(peerName, options); + resolved = resolve.sync(peerName, options); const folder = findRoot(resolved); return folder; } catch {