fix: use bun.lock to identify bun's lockfile (fix #12914) (#12998)

* fix: use bun.lock to identify bun's lockfile

* fix: also check bun.lockb

* doc: add changes doc
This commit is contained in:
Xuan
2025-03-17 01:00:04 +08:00
committed by GitHub
parent 35018eed02
commit eec08a18b6
2 changed files with 22 additions and 18 deletions

View File

@@ -0,0 +1,5 @@
---
'tauri-cli': 'patch:bug'
---
For bun's lockfile, check both `bun.lock` and `bun.lockb`.

View File

@@ -67,24 +67,23 @@ impl PackageManager {
for entry in entries.flatten() {
let path = entry.path();
let name = path.file_name().unwrap().to_string_lossy();
if name.as_ref() == "package-lock.json" {
found.push(PackageManager::Npm);
} else if name.as_ref() == "pnpm-lock.yaml" {
found.push(PackageManager::Pnpm);
} else if name.as_ref() == "yarn.lock" {
let yarn = if manager_version("yarn")
.map(|v| v.chars().next().map(|c| c > '1').unwrap_or_default())
.unwrap_or(false)
{
PackageManager::YarnBerry
} else {
PackageManager::Yarn
};
found.push(yarn);
} else if name.as_ref() == "bun.lockb" {
found.push(PackageManager::Bun);
} else if name.as_ref() == "deno.lock" {
found.push(PackageManager::Deno);
match name.as_ref() {
"package-lock.json" => found.push(PackageManager::Npm),
"pnpm-lock.yaml" => found.push(PackageManager::Pnpm),
"yarn.lock" => {
let yarn = if manager_version("yarn")
.map(|v| v.chars().next().map(|c| c > '1').unwrap_or_default())
.unwrap_or(false)
{
PackageManager::YarnBerry
} else {
PackageManager::Yarn
};
found.push(yarn);
}
"bun.lock" | "bun.lockb" => found.push(PackageManager::Bun),
"deno.lock" => found.push(PackageManager::Deno),
_ => (),
}
}
}