使用 vite 快速初始化 shadcn-vue 项目

Vite

1. 创建项目

使用 vite 创建一个新的 vue 项目。

如果你正在使用 JS 模板,需要存在 jsconfig.json 文件才能正确运行 CLI

复制代码
# 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

2. 添加 Tailwind 并配置

安装 tailwindcss 及其对等依赖项,然后生成 tailwind.config.js 并配置 postcss 插件。

复制代码
npm install -D tailwindcss autoprefixer

如果你正在使用 postcss.config.js,则无需此更改。

vite.config

复制代码
import path from 'node:path'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

import tailwind from 'tailwindcss'
import autoprefixer from 'autoprefixer'

export default defineConfig({
  css: {
    postcss: {
      plugins: [tailwind(), autoprefixer()],
    },
  },
  plugins: [vue()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
    },
  },
})

3. 编辑 tsconfig/jsconfig.json

如果您正在使用 TypeScript,则当前版本的 Vite 将配置分成三个文件,对 tsconfig.app.json 需要进行相同的更改。

将下面的代码添加到 tsconfig.json 或者 jsconfig.jsoncompilerOptions 中,之后你的应用就可以正确地解析路径。

复制代码
{
  "compilerOptions": {
    // ...
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
    // ...
  }
}

4. 更新 vite.config.ts

将下面的代码添加到 vite.config.ts ,之后你的应用就可以正确地解析路径。

复制代码
# 请正确导入路径
npm i -D @types/node

import path from 'node:path'
import vue from '@vitejs/plugin-vue'
import { defineConfig } from 'vite'

import tailwind from 'tailwindcss'
import autoprefixer from 'autoprefixer'

export default defineConfig({
  css: {
    postcss: {
      plugins: [tailwind(), autoprefixer()],
    },
  },
  plugins: [vue()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src'),
    },
  },
})

5. 删除默认的 Vite 样式

删除默认的 css 文件 ./src/style.css

6. 运行 CLI

运行 shadcn-vue 初始化命令创建你的项目:

复制代码
npx shadcn-vue@latest init

7. 配置 components.json

在此,你将如同创建 Vue 项目一样回答一系列问题:

复制代码
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

8. 更新 main.ts

删除默认配置的 css 并添加 tailwind 样式 import './assets/index.css'

复制代码
import { createApp } from 'vue'
- import './style.css'
import App from './App.vue'
+ import './assets/index.css'

createApp(App).mount('#app')

9. 开始使用

你现在可以开始添加 shadcn-vue 组件到你的项目中去。

复制代码
npx shadcn-vue@latest add button

这条命令将添加 Button 组件到你的项目中去。你可以这样使用:

复制代码
<script setup lang="ts">
import { Button } from '@/components/ui/button'
</script>

<template>
  <div>
    <Button>Click me</Button>
  </div>
</template>
相关推荐
前端小卡拉4 分钟前
用了大半年 AI 编程工具,我才搞懂 Skill 到底是什么
前端·javascript
hunterandroid6 分钟前
[鸿蒙从零到一] HarmonyOS 单元测试与 UI 自动化测试实战:从代码质量到用户体验的全链路保障
前端
郭邯10 分钟前
用 Intl.DateTimeFormat 手写一个时区转换器,顺便聊聊我和 AI 结对编程的日常
前端·javascript
阿奇__11 分钟前
微前端、iframe与Auth Code技术方案对比
前端
FungLeo17 分钟前
React 管理后台实战 · 前端请求层怎么写?401 静默刷新、token 并发竞争、强制改密拦截一次说清
前端·react.js·前端框架
mashirro43 分钟前
记一次基于ruoyi-vue新增小程序服务模块,小程序登陆相关
vue.js·小程序·mybatis
Vuji1 小时前
Pi 插件解剖|ssh.ts:只用 221 行,让 Agent 直接在远程机器干活
前端·人工智能·agent
漏刻有时1 小时前
Three.js 3D地图开发实录:从GeoJSON到流光飞线,一个纯前端SPA可视化引擎的12个坑
前端
clawdashi1 小时前
2026 办公 Agent 选型指南:按场景分五类,一次讲清
前端·人工智能
无糖可可果1 小时前
从零看懂 JWT 登录鉴权:一个 React Demo 的完整拆解
前端·javascript