diff --git a/lib/module-loader.js b/lib/module-loader.js index 6162032e60f1e44ecfa19525ee07eecee1186208..52e99df36c28ad3603ab4e669f0c30181e6b1335 100644 --- a/lib/module-loader.js +++ b/lib/module-loader.js @@ -155,7 +155,20 @@ async function resolvePath(config, modulePath) { let isESM; let filePath; try { - filePath = require.resolve(modulePath); + try { + // We wrap it with try/catch and fallback to custom path if it fails to make it compatible with Hive. + // Due to some weird behavior in tsup/esbuild, it fails to resolve the path to the module. + filePath = require.resolve(modulePath); + } catch (error) { + const customPath = process.env.OCLIF_CLI_CUSTOM_PATH; + if (typeof customPath !== "string") { + throw error; + } + modulePath = modulePath.replace('/src/', '/dist/').replace('\\src\\', '\\dist\\'); + filePath = require.resolve( + path.resolve(customPath, modulePath) + ".js" + ); + } isESM = isPathModule(filePath); } catch {