From f54b42af0a4ab247d3082006be744dc2eb51098b Mon Sep 17 00:00:00 2001 From: selemondev Date: Mon, 11 Nov 2024 12:00:57 +0300 Subject: [PATCH] refactor: init CLI --- packages/cli/src/commands/init.ts | 24 +++++++++++++++++++----- packages/module/src/module.ts | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/packages/cli/src/commands/init.ts b/packages/cli/src/commands/init.ts index 96e0f0284..4521fc733 100644 --- a/packages/cli/src/commands/init.ts +++ b/packages/cli/src/commands/init.ts @@ -4,7 +4,7 @@ import { Command } from 'commander' import { consola } from 'consola' import { colors } from 'consola/utils' import { template } from 'lodash-es' -import { addDependency } from 'nypm' +import { addDependency, addDevDependency } from 'nypm' import ora from 'ora' import path from 'pathe' import prompts from 'prompts' @@ -39,6 +39,9 @@ const PROJECT_DEPENDENCIES = { 'tailwind-merge', 'radix-vue', ], + nuxt: [ + 'shadcn-nuxt', + ], } const initOptionsSchema = z.object({ @@ -309,10 +312,21 @@ export async function runInit(cwd: string, config: Config) { const iconsDep = config.style === 'new-york' ? ['@radix-icons/vue'] : ['lucide-vue-next'] const deps = PROJECT_DEPENDENCIES.base.concat(iconsDep).filter(Boolean) - await addDependency(deps, { - cwd, - silent: true, - }) + await Promise.allSettled( + [ + config.framework === 'nuxt' && await addDevDependency( + [...PROJECT_DEPENDENCIES.nuxt, ...deps], + { + cwd, + silent: true, + }, + ), + await addDependency(deps, { + cwd, + silent: true, + }), + ], + ) dependenciesSpinner?.succeed() } diff --git a/packages/module/src/module.ts b/packages/module/src/module.ts index 8ee3dfbe2..ef62ad920 100644 --- a/packages/module/src/module.ts +++ b/packages/module/src/module.ts @@ -63,7 +63,7 @@ export default defineNuxtModule({ await installModule('@nuxtjs/tailwindcss') // Installs the `@nuxtjs/color-mode` module. - await installModule('@nuxtjs/color-mode') + await installModule('@nuxtjs/color-mode', { classSuffix: '' }) // Manually scan `componentsDir` for components and register them for auto imports try {