安装 shadcn-vue 组件库
使用 Vite 创建项目
# npm 6.x
npm create vite@latest my-vue-app --template vue-ts
# npm 7+, extra double-dash is needed:
npm create vite@latest my-vue-app -- --template vue-ts
添加 Tailwind 并配置
npm install -D tailwindcss autoprefixer
更新 vite.config.js 文件内容
import vue from '@vitejs/plugin-vue' import autoprefixer from 'autoprefixer' import tailwind from 'tailwindcss' import { defineConfig } from 'vite' // https://vite.dev/config/ export default defineConfig({ css: { postcss: { plugins: [tailwind(), autoprefixer()], }, }, plugins: [vue()], })
创建 jsconfig.json 并配置
{ "compilerOptions": { // ... "baseUrl": ".", "paths": { "@/*": ["./src/*"] } // ... } }
完善 vite.config.js 文件内容
import { fileURLToPath, URL } from 'node:url' import vue from '@vitejs/plugin-vue' import autoprefixer from 'autoprefixer' import tailwind from 'tailwindcss' import { defineConfig } from 'vite' // https://vite.dev/config/ export default defineConfig({ css: { postcss: { plugins: [tailwind(), autoprefixer()], }, }, plugins: [vue()], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } } })
删除默认样式文件
删除 src 目录下的 style.css 文件
运行命令
npx shadcn-vue@latest init
命令选项
Would you like to use TypeScript (recommended)? no / yes Which framework are you using? Vite / Nuxt / Laravel Which style would you like to use? › Default Which color would you like to use as base color? › Slate Where is your tsconfig.json or jsconfig.json file? › ./tsconfig.json Where is your global CSS file? › › src/assets/index.css Do you want to use CSS variables for colors? › no / yes Where is your tailwind.config.js located? › tailwind.config.js Configure the import alias for components: › @/components Configure the import alias for utils: › @/lib/utils Write configuration to components.json. Proceed? > Y/n
更新 main.js 文件内容
import { createApp } from 'vue' import App from './App.vue' import './assets/index.css' createApp(App).mount('#app')
尝试添加 Button 组件
npx shadcn-vue@latest add button