本指南将帮助你配置一个高效的 Vue 组件库本地开发环境,支持热重载和实时预览。
概述 #
我们为组件库创建了一个独立的开发环境,与构建配置分离,让你能够:
- 🔥 实时热重载,修改组件立即生效
- 📱 实时预览所有组件的效果
- 🛠 独立的开发配置,不影响构建流程
- 🎯 专门的调试界面,方便测试组件功能
文件结构 #
packages/my-components-vite/
├── vite.config.ts # 生产构建配置
├── vite.dev.config.ts # 开发环境配置
├── index.html # 开发环境入口页面
├── dev-main.ts # 开发环境主入口文件
├── dev-app.vue # 开发环境应用组件
├── src/ # 组件源码
└── package.json # 项目配置
配置文件详解 #
1. 开发环境配置 (vite.dev.config.ts
) #
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
export default defineConfig({
plugins: [vue()],
// 开发服务器配置
server: {
host: '0.0.0.0', // 允许外部访问
port: 3000, // 端口号
open: true, # 自动打开浏览器
hmr: true, # 热重载
},
// 路径解析
resolve: {
alias: {
'@': resolve(__dirname, 'src'),
},
},
// CSS 预处理器
css: {
preprocessorOptions: {
scss: {},
},
},
// 优化依赖预构建
optimizeDeps: {
include: ['vue', 'element-plus', '@element-plus/icons-vue'],
},
})
2. 生产构建配置 (vite.config.ts
) #
保持原有的构建配置不变,专门用于打包组件库:
export default defineConfig({
plugins: [
vue(),
dts({
// TypeScript 声明文件生成配置
}),
],
build: {
lib: {
// 库构建配置
},
rollupOptions: {
// Rollup 配置
},
},
})
3. 开发环境入口 (dev-main.ts
) #
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import DevApp from './dev-app.vue'
const app = createApp(DevApp)
// 安装 Element Plus
app.use(ElementPlus)
// 注册所有图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component)
}
app.mount('#app')
4. 开发应用组件 (dev-app.vue
) #
开发应用组件包含了所有组件的演示和测试界面:
- MyButton 组件演示:展示不同类型、状态的按钮
- PaginationSelect 组件演示:展示分页选择器的各种配置
- 实时调试信息:显示组件状态和交互数据
使用方法 #
1. 启动开发服务器 #
# 进入组件库目录
cd packages/my-components-vite
# 启动开发服务器
pnpm run dev
# 或者启动并自动打开浏览器
pnpm run dev:open
2. 可用的脚本命令 #
{
"scripts": {
"dev": "vite --config vite.dev.config.ts",
"dev:open": "vite --config vite.dev.config.ts --open",
"build": "vite build",
"preview": "vite preview"
}
}
3. 访问开发环境 #
启动后会自动在浏览器中打开:
- 本地访问:
http://localhost:3000
- 网络访问:
http://[你的IP]:3000
开发工作流 #
1. 修改组件 #
当你修改 src/
目录下的任何组件文件时:
- Vite 会自动检测文件变化
- 热重载会立即更新浏览器中的内容
- 无需手动刷新页面
2. 添加新组件 #
- 在
src/components/
中创建新组件 - 在
src/components/index.ts
中导出新组件 - 在
dev-app.vue
中添加新组件的演示代码 - 在
index.ts
中注册新组件
3. 测试组件功能 #
开发界面提供了:
- 基础功能测试:测试组件的基本属性和方法
- 交互测试:测试事件处理和状态变化
- 样式测试:测试不同状态下的样式表现
- 调试信息:实时查看组件内部状态
调试技巧 #
1. 使用浏览器开发工具 #
- Vue DevTools:安装 Vue 开发者工具来检查组件状态
- 控制台:查看
console.log
输出的调试信息 - 网络面板:监控组件的网络请求(如 PaginationSelect)
2. 组件状态监控 #
开发界面的"调试信息"区域实时显示:
const debugInfo = computed(() => {
return {
manualLoading: manualLoading.value,
clickCount: clickCount.value,
selectedValue: selectedValue.value,
selectedValue2: selectedValue2.value,
timestamp: new Date().toLocaleTimeString(),
}
})
3. 热重载最佳实践 #
- 保存频率:频繁保存以获得即时反馈
- 状态保持:热重载会尽量保持组件状态
- 样式调试:CSS 修改会立即生效,无需重新加载
常见问题 #
1. 端口被占用 #
如果 3000 端口被占用,Vite 会自动尝试其他端口:
Port 3000 is in use, trying another one...
➜ Local: http://localhost:3001/
2. 热重载不工作 #
检查以下几点:
- 确保使用了正确的开发配置文件
- 检查文件路径是否正确
- 重启开发服务器
3. 组件样式问题 #
- 确保导入了 Element Plus 的样式文件
- 检查 SCSS 配置是否正确
- 验证组件的
scoped
样式
高级配置 #
1. 自定义端口和主机 #
修改 vite.dev.config.ts
:
server: {
host: '0.0.0.0',
port: 8080, // 自定义端口
open: '/custom', // 自定义打开路径
}
2. 代理配置 #
如果需要代理 API 请求:
server: {
proxy: {
'/api': {
target: 'http://localhost:8080',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
}
}
3. 环境变量 #
创建 .env.development
文件:
VITE_API_URL=http://localhost:8080/api
VITE_DEBUG=true
在代码中使用:
const apiUrl = import.meta.env.VITE_API_URL
总结 #
通过这个开发环境配置,你可以:
- 高效开发:实时预览组件效果,无需手动刷新
- 独立调试:专门的调试界面,方便测试各种场景
- 配置分离:开发和构建配置分离,互不干扰
- 扩展性好:易于添加新组件和测试用例
现在你可以愉快地开发 Vue 组件了!当你修改任何组件文件时,浏览器会自动更新,让你立即看到变化效果。