diff --git a/src/targets/node/nodeLauncher.ts b/src/targets/node/nodeLauncher.ts index 9bf4027aa..72cd52ca9 100644 --- a/src/targets/node/nodeLauncher.ts +++ b/src/targets/node/nodeLauncher.ts @@ -2,9 +2,9 @@ * Copyright (C) Microsoft Corporation. All rights reserved. *--------------------------------------------------------*/ -import { inject, injectable, multiInject } from 'inversify'; +import { inject, injectable, multiInject, optional } from 'inversify'; import { extname, resolve } from 'path'; -import * as vscode from 'vscode'; +import type * as vscodeType from 'vscode'; import { IBreakpointsPredictor } from '../../adapter/breakpointPredictor'; import { IPortLeaseTracker } from '../../adapter/portLeaseTracker'; import Cdp from '../../cdp/api'; @@ -16,6 +16,7 @@ import { fixDriveLetterAndSlashes } from '../../common/pathUtils'; import { delay } from '../../common/promiseUtil'; import { absolutePathToFileUrl, urlToRegex } from '../../common/urlUtils'; import { AnyLaunchConfiguration, INodeLaunchConfiguration } from '../../configuration'; +import { VSCodeApi } from '../../ioc-extras'; import { fixInspectFlags } from '../../ui/configurationUtils'; import { retryGetNodeEndpoint } from '../browser/spawn/endpoints'; import { ISourcePathResolverFactory } from '../sourcePathResolverFactory'; @@ -77,6 +78,7 @@ export class NodeLauncher extends NodeLauncherBase { @inject(IPackageJsonProvider) private readonly packageJson: IPackageJsonProvider, @inject(ISourcePathResolverFactory) pathResolverFactory: ISourcePathResolverFactory, @inject(IPortLeaseTracker) portLeaseTracker: IPortLeaseTracker, + @optional() @inject(VSCodeApi) private readonly vscode?: typeof vscodeType, ) { super(pathProvider, logger, portLeaseTracker, pathResolverFactory); } @@ -313,7 +315,7 @@ export class NodeLauncher extends NodeLauncherBase { return targetProgram; } - const resolve = readConfig(vscode.workspace, Configuration.ResolveDebugEntrypoint); + const resolve = this.vscode ? readConfig(this.vscode.workspace, Configuration.ResolveDebugEntrypoint) : true; if (!resolve) { return targetProgram; }