diff --git a/.changeset/red-dolls-repair.md b/.changeset/red-dolls-repair.md new file mode 100644 index 000000000..37dbd682f --- /dev/null +++ b/.changeset/red-dolls-repair.md @@ -0,0 +1,5 @@ +--- +'@verdaccio/loaders': patch +--- + +chore: debug messages in loader diff --git a/packages/loaders/src/plugin-async-loader.ts b/packages/loaders/src/plugin-async-loader.ts index 9f2b8adeb..691a59f12 100644 --- a/packages/loaders/src/plugin-async-loader.ts +++ b/packages/loaders/src/plugin-async-loader.ts @@ -55,7 +55,7 @@ export async function asyncLoadPlugin>( const { config } = pluginOptions; let plugins: PluginType[] = []; for (let pluginId of pluginsIds) { - debug('looking for plugin %o', pluginId); + debug('>>> looking for plugin %o', pluginId); if (typeof config.plugins === 'string') { let pluginsPath = config.plugins; debug('plugin path %s', pluginsPath); @@ -90,6 +90,7 @@ export async function asyncLoadPlugin>( ); continue; } + debug('>>> plugin is running and passed sanity check'); plugins.push(plugin); logger.info( { prefix, pluginId, pluginCategory }, @@ -119,6 +120,7 @@ export async function asyncLoadPlugin>( logger.error({ content: pluginName }, "@{content} doesn't look like a valid plugin"); continue; } + debug('>>> plugin is running and passed sanity check'); plugins.push(plugin); logger.info( { prefix, pluginId, pluginCategory }, @@ -134,7 +136,7 @@ export async function asyncLoadPlugin>( } } } - debug('%s plugins found: %s', pluginCategory, plugins.length); + debug('%o plugins found: %o', pluginCategory, plugins.length); return plugins; } diff --git a/packages/loaders/src/utils.ts b/packages/loaders/src/utils.ts index 670fcd85f..9431eb891 100644 --- a/packages/loaders/src/utils.ts +++ b/packages/loaders/src/utils.ts @@ -28,7 +28,15 @@ export function tryLoad(path: string, onError: any): PluginType | null { return require(path) as PluginType; } catch (err: any) { if (err.code === MODULE_NOT_FOUND) { - debug('plugin %s not found', path); + debug('"require" failed for plugin %s', path); + // If loading fails, because a dependency is missing, + // we want to log the error message and require stack + // to see where the missing dependency is. + const message = err.message.replace(/\\\\/g, '\\').split('\n'); + if (!message[0].includes(path)) { + debug('%o', message[0]); // error message + debug('%o', message.slice(1)); // stack trace + } return null; } onError({ err: err.msg }, 'error loading plugin @{err}');