mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-26 14:16:08 +00:00
Compare commits
1 Commits
fix/cli-va
...
shadcn/cli
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dcd08c1abe |
@@ -1,11 +1,8 @@
|
|||||||
import { RegistryItem } from "@/src/registry/schema"
|
import { RegistryItem } from "@/src/registry/schema"
|
||||||
import { Config } from "@/src/utils/get-config"
|
import { Config } from "@/src/utils/get-config"
|
||||||
import { getPackageInfo } from "@/src/utils/get-package-info"
|
|
||||||
import { getPackageManager } from "@/src/utils/get-package-manager"
|
import { getPackageManager } from "@/src/utils/get-package-manager"
|
||||||
import { logger } from "@/src/utils/logger"
|
|
||||||
import { spinner } from "@/src/utils/spinner"
|
import { spinner } from "@/src/utils/spinner"
|
||||||
import { execa } from "execa"
|
import { execa } from "execa"
|
||||||
import prompts from "prompts"
|
|
||||||
|
|
||||||
export async function updateDependencies(
|
export async function updateDependencies(
|
||||||
dependencies: RegistryItem["dependencies"],
|
dependencies: RegistryItem["dependencies"],
|
||||||
@@ -29,43 +26,11 @@ export async function updateDependencies(
|
|||||||
})?.start()
|
})?.start()
|
||||||
const packageManager = await getPackageManager(config.resolvedPaths.cwd)
|
const packageManager = await getPackageManager(config.resolvedPaths.cwd)
|
||||||
|
|
||||||
// Offer to use --force or --legacy-peer-deps if using React 19 with npm.
|
|
||||||
let flag = ""
|
|
||||||
if (isUsingReact19(config) && packageManager === "npm") {
|
|
||||||
if (options.silent) {
|
|
||||||
flag = "force"
|
|
||||||
} else {
|
|
||||||
dependenciesSpinner.stopAndPersist()
|
|
||||||
logger.warn(
|
|
||||||
"\nIt looks like you are using React 19. \nSome packages may fail to install due to peer dependency issues in npm (see https://ui.shadcn.com/react-19).\n"
|
|
||||||
)
|
|
||||||
const confirmation = await prompts([
|
|
||||||
{
|
|
||||||
type: "select",
|
|
||||||
name: "flag",
|
|
||||||
message: "How would you like to proceed?",
|
|
||||||
choices: [
|
|
||||||
{ title: "Use --force", value: "force" },
|
|
||||||
{ title: "Use --legacy-peer-deps", value: "legacy-peer-deps" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
])
|
|
||||||
|
|
||||||
if (confirmation) {
|
|
||||||
flag = confirmation.flag
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependenciesSpinner?.start()
|
dependenciesSpinner?.start()
|
||||||
|
|
||||||
await execa(
|
await execa(
|
||||||
packageManager,
|
packageManager,
|
||||||
[
|
[packageManager === "npm" ? "install" : "add", ...dependencies],
|
||||||
packageManager === "npm" ? "install" : "add",
|
|
||||||
...(packageManager === "npm" && flag ? [`--${flag}`] : []),
|
|
||||||
...dependencies,
|
|
||||||
],
|
|
||||||
{
|
{
|
||||||
cwd: config.resolvedPaths.cwd,
|
cwd: config.resolvedPaths.cwd,
|
||||||
}
|
}
|
||||||
@@ -73,13 +38,3 @@ export async function updateDependencies(
|
|||||||
|
|
||||||
dependenciesSpinner?.succeed()
|
dependenciesSpinner?.succeed()
|
||||||
}
|
}
|
||||||
|
|
||||||
function isUsingReact19(config: Config) {
|
|
||||||
const packageInfo = getPackageInfo(config.resolvedPaths.cwd)
|
|
||||||
|
|
||||||
if (!packageInfo?.dependencies?.react) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return /^(?:\^|~)?19(?:\.\d+)*(?:-.*)?$/.test(packageInfo.dependencies.react)
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user