mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 21:55:38 +00:00
parent
55bd429f31
commit
0b148e83db
|
@ -95,6 +95,10 @@
|
|||
{
|
||||
"command": "npm.runScriptFromFolder",
|
||||
"title": "%command.runScriptFromFolder%"
|
||||
},
|
||||
{
|
||||
"command": "npm.packageManager",
|
||||
"title": "%command.packageManager"
|
||||
}
|
||||
],
|
||||
"menus": {
|
||||
|
@ -126,6 +130,10 @@
|
|||
{
|
||||
"command": "npm.runScriptFromFolder",
|
||||
"when": "false"
|
||||
},
|
||||
{
|
||||
"command": "npm.packageManager",
|
||||
"when": "false"
|
||||
}
|
||||
],
|
||||
"editor/context": [
|
||||
|
|
|
@ -19,5 +19,6 @@
|
|||
"command.openScript": "Open",
|
||||
"command.runInstall": "Run Install",
|
||||
"command.runSelectedScript": "Run Script",
|
||||
"command.runScriptFromFolder": "Run NPM Script in Folder..."
|
||||
"command.runScriptFromFolder": "Run NPM Script in Folder...",
|
||||
"command.packageManager": "Get Configured Package Manager"
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import * as vscode from 'vscode';
|
|||
import { addJSONProviders } from './features/jsonContributions';
|
||||
import { runSelectedScript, selectAndRunScriptFromFolder } from './commands';
|
||||
import { NpmScriptsTreeDataProvider } from './npmView';
|
||||
import { invalidateTasksCache, NpmTaskProvider } from './tasks';
|
||||
import { getPackageManager, invalidateTasksCache, NpmTaskProvider } from './tasks';
|
||||
import { invalidateHoverScriptsCache, NpmScriptHoverProvider } from './scriptHover';
|
||||
|
||||
let treeDataProvider: NpmScriptsTreeDataProvider | undefined;
|
||||
|
@ -56,7 +56,12 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
|
|||
context.subscriptions.push(vscode.commands.registerCommand('npm.refresh', () => {
|
||||
invalidateScriptCaches();
|
||||
}));
|
||||
|
||||
context.subscriptions.push(vscode.commands.registerCommand('npm.packageManager', (args) => {
|
||||
if (args instanceof vscode.Uri) {
|
||||
return getPackageManager(args, true);
|
||||
}
|
||||
return '';
|
||||
}));
|
||||
}
|
||||
|
||||
function canRunNpmInCurrentWorkspace() {
|
||||
|
|
|
@ -108,15 +108,15 @@ export function isWorkspaceFolder(value: any): value is WorkspaceFolder {
|
|||
return value && typeof value !== 'number';
|
||||
}
|
||||
|
||||
export async function getPackageManager(folder: WorkspaceFolder): Promise<string> {
|
||||
let packageManagerName = workspace.getConfiguration('npm', folder.uri).get<string>('packageManager', 'npm');
|
||||
export async function getPackageManager(folder: Uri, silent: boolean = false): Promise<string> {
|
||||
let packageManagerName = workspace.getConfiguration('npm', folder).get<string>('packageManager', 'npm');
|
||||
|
||||
if (packageManagerName === 'auto') {
|
||||
const { name, multiplePMDetected } = await findPreferredPM(folder.uri.fsPath);
|
||||
const { name, multiplePMDetected } = await findPreferredPM(folder.fsPath);
|
||||
packageManagerName = name;
|
||||
|
||||
if (multiplePMDetected) {
|
||||
const multiplePMWarning = localize('npm.multiplePMWarning', 'Found multiple lockfiles for {0}. Using {1} as the preferred package manager.', folder.uri.fsPath, packageManagerName);
|
||||
if (multiplePMDetected && !silent) {
|
||||
const multiplePMWarning = localize('npm.multiplePMWarning', 'Found multiple lockfiles for {0}. Using {1} as the preferred package manager.', folder.fsPath, packageManagerName);
|
||||
window.showWarningMessage(multiplePMWarning);
|
||||
}
|
||||
}
|
||||
|
@ -291,7 +291,7 @@ export async function createTask(script: NpmTaskDefinition | string, cmd: string
|
|||
kind = script;
|
||||
}
|
||||
|
||||
const packageManager = await getPackageManager(folder);
|
||||
const packageManager = await getPackageManager(folder.uri);
|
||||
async function getCommandLine(cmd: string): Promise<string> {
|
||||
if (workspace.getConfiguration('npm', folder.uri).get<boolean>('runSilent')) {
|
||||
return `${packageManager} --silent ${cmd}`;
|
||||
|
@ -378,7 +378,7 @@ export async function startDebugging(scriptName: string, cwd: string, folder: Wo
|
|||
request: 'launch',
|
||||
name: `Debug ${scriptName}`,
|
||||
cwd,
|
||||
runtimeExecutable: await getPackageManager(folder),
|
||||
runtimeExecutable: await getPackageManager(folder.uri),
|
||||
runtimeArgs: [
|
||||
'run',
|
||||
scriptName,
|
||||
|
|
Loading…
Reference in a new issue