diff --git a/extensions/npm/src/npmView.ts b/extensions/npm/src/npmView.ts index e21f18a2101..4bc361b09a6 100644 --- a/extensions/npm/src/npmView.ts +++ b/extensions/npm/src/npmView.ts @@ -314,6 +314,7 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider { private buildTaskTree(tasks: Task[]): Folder[] | PackageJSON[] | NoScripts[] { let folders: Map = new Map(); let packages: Map = new Map(); + let scripts: Map = new Map(); let folder = null; let packageJson = null; @@ -334,8 +335,12 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider { folder.addPackage(packageJson); packages.set(fullPath, packageJson); } - let script = new NpmScript(this.extensionContext, packageJson, each); - packageJson.addScript(script); + let fullScriptPath = path.join(packageJson.path, each.name); + if (!scripts.get(fullScriptPath)) { + let script = new NpmScript(this.extensionContext, packageJson, each); + packageJson.addScript(script); + scripts.set(fullScriptPath, script); + } } }); if (folders.size === 1) {