diff --git a/extensions/npm/src/tasks.ts b/extensions/npm/src/tasks.ts index 5a3d1a53f24..911d66fbe3b 100644 --- a/extensions/npm/src/tasks.ts +++ b/extensions/npm/src/tasks.ts @@ -370,7 +370,23 @@ export async function hasPackageJson(): Promise { const timeout = setTimeout(() => token.cancel(), 1000); const files = await workspace.findFiles('**/package.json', undefined, 1, token.token); clearTimeout(timeout); - return files.length > 0; + return files.length > 0 || await hasRootPackageJson(); +} + +async function hasRootPackageJson(): Promise { + let folders = workspace.workspaceFolders; + if (!folders) { + return false; + } + for (const folder of folders) { + if (folder.uri.scheme === 'file') { + let packageJson = path.join(folder.uri.fsPath, 'package.json'); + if (await exists(packageJson)) { + return true; + } + } + } + return false; } async function exists(file: string): Promise {