diff --git a/extensions/npm/src/tasks.ts b/extensions/npm/src/tasks.ts index 390da48cf58..2bb314c9fa1 100644 --- a/extensions/npm/src/tasks.ts +++ b/extensions/npm/src/tasks.ts @@ -363,12 +363,16 @@ export function getPackageJsonUriFromTask(task: Task): Uri | null { } export async function hasPackageJson(): Promise { + // Faster than `findFiles` for workspaces with a root package.json. + if (await hasRootPackageJson()) { + return true; + } const token = new CancellationTokenSource(); // Search for files for max 1 second. const timeout = setTimeout(() => token.cancel(), 1000); const files = await workspace.findFiles('**/package.json', undefined, 1, token.token); clearTimeout(timeout); - return files.length > 0 || await hasRootPackageJson(); + return files.length > 0; } async function hasRootPackageJson(): Promise {