Skip to content
Merged
17 changes: 14 additions & 3 deletions crates/vite_pm_cli/src/handlers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ use vite_path::AbsolutePath;
use crate::{
cli::{ConfigCommands, DistTagCommands, OwnerCommands, PmCommands, TokenCommands},
error::Error,
helpers::{build_package_manager, build_package_manager_or_npm_default, ensure_package_json},
helpers::{
build_package_manager, build_package_manager_or_npm_default, default_npm_package_manager,
ensure_package_json,
},
};

pub async fn run_add(
Expand Down Expand Up @@ -92,15 +95,23 @@ pub async fn run_outdated(
cwd: &AbsolutePath,
options: &OutdatedCommandOptions<'_>,
) -> Result<ExitStatus, Error> {
let pm = build_package_manager(cwd).await?;
let pm = if options.global {
default_npm_package_manager(cwd)
} else {
build_package_manager(cwd).await?
};
Ok(pm.run_outdated_command(options, cwd).await?)
}

pub async fn run_why(
cwd: &AbsolutePath,
options: &WhyCommandOptions<'_>,
) -> Result<ExitStatus, Error> {
let pm = build_package_manager(cwd).await?;
let pm = if options.global {
default_npm_package_manager(cwd)
} else {
build_package_manager(cwd).await?
};
Ok(pm.run_why_command(options, cwd).await?)
}

Expand Down
2 changes: 1 addition & 1 deletion crates/vite_pm_cli/src/helpers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pub async fn build_package_manager_or_npm_default(
}
}

fn default_npm_package_manager(cwd: &AbsolutePath) -> PackageManager {
pub(crate) fn default_npm_package_manager(cwd: &AbsolutePath) -> PackageManager {
PackageManager {
client: PackageManagerType::Npm,
package_name: "npm".into(),
Expand Down
13 changes: 13 additions & 0 deletions packages/cli/snap-tests/command-pm-no-package-json/snap.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,16 @@ error: No package.json found.

[1]> vp why lodash # should show friendly error
error: No package.json found.

> vp outdated definitely-not-installed-vite-plus-snap-pkg -g --format json # should not require package.json for global outdated
{}

[1]> vp why definitely-not-installed-vite-plus-snap-pkg -g --json # should not require package.json for global why
npm error No dependencies found matching definitely-not-installed-vite-plus-snap-pkg
{
"error": {
"summary": "No dependencies found matching definitely-not-installed-vite-plus-snap-pkg",
"detail": ""
}
}
npm error A complete log of this run can be found in: <homedir>/.npm/_logs/<timestamp>-debug.log
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
{
"ignoredPlatforms": ["win32"],
"commands": [
"vp pm ls # should show friendly error",
"vp pm prune # should show friendly error",
"vp outdated # should show friendly error",
"vp why lodash # should show friendly error"
"vp why lodash # should show friendly error",
"vp outdated definitely-not-installed-vite-plus-snap-pkg -g --format json # should not require package.json for global outdated",
"vp why definitely-not-installed-vite-plus-snap-pkg -g --json # should not require package.json for global why"
]
}
Loading