extensions/npm/src/tasks.ts/provideNpmScriptsForFolder
async function provideNpmScriptsForFolder(context: ExtensionContext, packageJsonUri: Uri, showWarning: boolean): Promise<TaskWithLocation[]> {
	let emptyTasks: TaskWithLocation[] = [];

	let folder = workspace.getWorkspaceFolder(packageJsonUri);
	if (!folder) {
		return emptyTasks;
	}
	let scripts = await getScripts(packageJsonUri);
	if (!scripts) {
		return emptyTasks;
	}

	const result: TaskWithLocation[] = [];

	const packageManager = await getPackageManager(context, folder.uri, showWarning);

	for (const { name, value, nameRange } of scripts.scripts) {
		const task = await createTask(packageManager, name, ['run', name], folder!, packageJsonUri, value, undefined);
		result.push({ task, location: new Location(packageJsonUri, nameRange) });
	}

	// always add npm install (without a problem matcher)
	result.push({ task: await createTask(packageManager, INSTALL_SCRIPT, [INSTALL_SCRIPT], folder, packageJsonUri, 'install dependencies from package', []) });
	return result;
}