@varlet/cli
| Install | |
|---|---|
npm install @varlet/cli |
|
| Latest Version: | 3.20.7 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 21, 2026 |
| Links: | GitHub · npm |
组件库快速成型工具
介绍
开箱即用的 Vue3组件库 快速成型工具,提供了一系列命令和工具去解决组件库开发上的问题。
特性
- 📦 开箱即用的组件库开发环境
- 📦 开箱即用的组件库编译工具,支持导出
esm,cjs,umd三种模块代码 - 🛠️ 基于配置文件的组件库文档站点,支持百度统计和主题定制
- 🛠️ 支持
sfc和tsx两种风格的组件库编写风格 - 📦 开箱即用的代码检查工具
- 📦 开箱即用的单元测试工具
- 📦 开箱即用的代码发布工具,同时发布到
npm和github, 并自动生成更新日志 - 💪 支持
VSCode插件开发 - 💪 支持
字体图标打包 - 💪 支持
Typescript - 💪 支持
多种主题, 包含 Material Design 2、Material Design 3 - 🌍 支持
国际化 - 🚀 基于
pnpm
推荐技术栈
在全新的 Varlet 组件库工具链 体系下,我们建议将 @varlet/cli、vite-plus(vp)与 rattail(rt)组合使用:前者覆盖组件库文档站与编译等一等能力,后两者承接与 Oxc / Rolldown 栈一致的 lint、format、打包入口,以及 clean、git hooks、changelog、release、commit-lint 等工程自动化。无论是从零搭建新库,还是升级旧脚手架、需要与模板对齐时,都推荐沿用这一组合。
| 部分 | 作用 |
|---|---|
@varlet/cli |
Varlet 一等能力:create、gen、dev、build、preview、compile、compile:style-vars、build:icons、test 等 |
vite-plus(vp) |
与 Oxc / Rolldown 栈一致的 lint、format、应用/扩展的 build/dev/preview 等入口 |
rattail(rt) |
clean、git hooks、changelog、release、commit-lint 等工程自动化 |
以下命令即将废弃
以下命令仍可执行(会给出废弃相关提示),但不应在新脚本或新工程中再依赖,请优先改用 vp / rt(或文档中的 vr)。具体时间表以后续发布说明为准。
| 命令 | 请改用 |
|---|---|
varlet-cli dev:vite |
vp dev |
varlet-cli build:vite |
vp build |
varlet-cli dev:extension |
vp pack --watch(扩展包内需有本地 vite.config.ts) |
varlet-cli build:extension |
vp pack |
varlet-cli commit-lint |
rt commit-lint |
varlet-cli checklist |
用处极小,直接废弃 |
varlet-cli changelog |
rt changelog |
varlet-cli release |
rt release |
快速开始
@varlet/cli 内置了 sfc 和 tsx 两种风格的组件库项目模板,可以通过 gen 命令直接生成。
方便您直接进入组件库开发。
# playground-ignore
pnpm add @varlet/cli -g
varlet-cli gen
高级定制
配置文件
项目根目录下的 varlet.config.mjs 用来管理整个组件库项目的具体细节。
默认配置可查阅 varlet.default.config.ts。
也可以参考 @varlet/ui 的 varlet.config.mjs。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
name |
组件库全名,会作为包名 | string | Varlet |
namespace |
组件库命名空间, 会作为组件前缀 | string | var |
host |
开发服务器主机 | number | localhost |
port |
开发服务器端口 | number | 8080 |
proxy |
开发服务器代理 | Record<string, string | ProxyOptions> | - |
title |
文档中组件库的标题 | string | VARLET |
logo |
文档中组件库的 logo | string | - |
alias |
路径别名 (使用相对路径时,根路径为 src 文件夹) | Record<string, string> | - |
defaultLanguage |
文档默认语言 | string | zh-CN |
defaultLightTheme |
默认的亮色主题 | string | md3LightTheme |
defaultDarkTheme |
默认的暗色主题 | string | md3DarkTheme |
useMobile |
是否显示右侧手机预览 | boolean | false |
themeKey |
主题在本地存储中的 key | string | VARLET_THEME |
lightTheme |
md2 亮色模式文档主题 | Record<string, any> | - |
darkTheme |
md2 暗黑模式文档主题 | Record<string, any> | - |
md3LightTheme |
md3 亮色模式文档主题 | Record<string, any> | - |
md3DarkTheme |
md3 暗黑模式文档主题 | Record<string, any> | - |
highlight |
文档代码片段样式相关 | { style: string } | - |
analysis |
文档统计相关 | { baidu: string } | - |
pc |
pc 端文档结构配置 | VarletConfigPc | - |
mobile |
mobile 端文档结构配置 | VarletConfigMobile | - |
bundle |
组件库编译的捆绑产物配置 | { external: string[], globals: Record<string, string> } | - |
vitePlugins |
vite 插件 | Plugin[] | (plugins: Plugin[]) => Plugin[]) |
- |
directives |
组件库指令文件夹名称 | string[] | [] |
copy |
复制文件配置 | CopyPath[] | - |
icons |
字体图标打包相关配置 | VarletConfigIcons | - |
esbuild |
esbuild 配置 | VarletConfigEsbuild | - |
seo |
seo 选项 | VarletConfigSeo | - |
Menu
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
doc |
文档页面应匹配的文件名称, 必填 | string | - |
type |
menu 类型, 当 type 为 1 时表示分类 menu, 类型为 2 时 doc 字段匹配 src 下的组件文件, 类型为3时 doc 字段匹配 docs 下的 md 文件 |
MenuTypes | - |
text |
menu 所展示的文字, 当设置国际化时可配置英文展示文字 | Record<string, string> | - |
useMobile |
是否在当前文档页显示右侧手机预览, 如不填写, 默认取 config 中的 useMobile | boolean | - |
自定义页面
如果想在组件库中插入其他页面,可以在项目根目录下的创建 pages 文件夹编写 vue 组件, 用来生成其他的页面。
目录结构如下:
// playground-ignore
|-- varlet-ui
|-- src
|-- docs
|-- pages
|-- sponsor
|-- index.vue
|-- contributor
|-- locale
|-- en-US.ts
|-- index.vue
|-- changelog
|-- locale
|-- zh-CN.ts
|-- en-US.ts
|-- index.vue
生成的路由如下:
// playground-ignore
/zh-CN/sponsor
/en-US/contributor
/zh-CN/changelog
/en-US/changelog
命令相关
启动开发服务器
# playground-ignore
varlet-cli dev
# force mode
varlet-cli dev -f
# draft mode
varlet-cli dev -d
构建文档站点
# playground-ignore
varlet-cli build
预览文档站点
# playground-ignore
varlet-cli preview
# set port number
varlet-cli preview -p <port>
构建组件库
# playground-ignore
varlet-cli compile
构建样式变量类型声明文件
# playground-ignore
varlet-cli compile:style-vars
打包字体图标
# playground-ignore
varlet-cli build:icons -w
varlet-cli build:icons
执行所有的单元测试
# playground-ignore
varlet-cli test
执行单个组件的单元测试
# playground-ignore
varlet-cli test -c <componentName>
以 watch 模式执行单元测试
# playground-ignore
varlet-cli test -w
执行所有的单元测试并报告覆盖率
# playground-ignore
varlet-cli test -cov
生成一个项目模板
# playground-ignore
varlet-cli gen
# Options
-n
--name
项目名
-s
--sfc
生成 sfc 风格的项目模板
-t
--tsx
生成 tsx 格式项目
-l
--locale
需要支持国际化
创建组件模板文件
# playground-ignore
varlet-cli create
# Options
-n
--name
组件名
-s
--sfc
生成 sfc 风格的组件
-t
--tsx
生成 tsx 风格的文件
-l
--locale
需要支持国际化
发布前注意
npm的仓库源必须指向npm官方镜像- 执行
npm login进行登录
问答
如何解决安装 sharp 失败的问题 ?
- 您可以选择更改包含 sharp 和 libvips 二进制文件的镜像站点
pnpm config set sharp_binary_host "https://npmmirror.com/mirrors/sharp"
pnpm config set sharp_libvips_binary_host "https://npmmirror.com/mirrors/sharp-libvips"
Related Packages
Version History
| Version | Released | License |
|---|---|---|
| 3.20.7 | MIT | |
| 3.20.6 | MIT | |
| 3.20.5 | MIT | |
| 3.20.4 | MIT | |
| 3.20.3 | MIT | |
| 3.20.2 | MIT | |
| 3.20.1 | MIT | |
| 3.20.0 | MIT | |
| 3.19.3 | MIT | |
| 3.19.2 | MIT | |
| 3.19.1 | MIT | |
| 3.19.0 | MIT | |
| 3.18.2 | MIT | |
| 3.18.1 | MIT | |
| 3.18.0 | MIT | |
| 3.17.1 | MIT | |
| 3.17.0 | MIT | |
| 3.16.2 | MIT | |
| 3.16.1 | MIT | |
| 3.16.0 | MIT | |
| 3.15.2 | MIT | |
| 3.15.1 | MIT | |
| 3.15.0 | MIT | |
| 3.14.2 | MIT | |
| 3.14.1 | MIT | |
| 3.14.0 | MIT | |
| 3.13.1 | MIT | |
| 3.13.0 | MIT | |
| 3.12.3 | MIT | |
| 3.12.2 | MIT |
Showing the latest 30 of 399. See every release on npm
Pre-releases (416)
| Version | Released | License |
|---|---|---|
| 3.18.0-alpha.1781276267923 | MIT | |
| 3.18.0-alpha.1781201095903 | MIT | |
| 3.18.0-alpha.1781192892883 | MIT | |
| 3.18.0-alpha.1781190469654 | MIT | |
| 3.16.0-alpha.1778506868488 | MIT | |
| 3.16.0-alpha.1778498431663 | MIT | |
| 3.16.0-alpha.1778497724801 | MIT | |
| 3.16.0-alpha.1778310023051 | MIT | |
| 3.15.0-alpha.1776609013808 | MIT | |
| 3.15.0-alpha.1776606769606 | MIT | |
| 3.15.0-alpha.1776572752298 | MIT | |
| 3.14.0-alpha.1772307023035 | MIT | |
| 3.13.0-alpha.1767109075937 | MIT | |
| 3.12.0-alpha.1759894325542 | MIT | |
| 3.11.5-alpha.1757700927355 | MIT | |
| 3.11.5-alpha.1757669330360 | MIT | |
| 3.11.0-alpha.1750074503930 | MIT | |
| 3.10.9-alpha.1749629591895 | MIT | |
| 3.9.0-alpha.1740240238764 | MIT | |
| 3.9.0-alpha.1736270797421 | MIT | |
| 3.8.8-alpha.1740239827789 | MIT | |
| 3.8.8-alpha.1740239293008 | MIT | |
| 3.8.8-alpha.1740223986421 | MIT | |
| 3.8.6-alpha.1738773989240 | MIT | |
| 3.8.3-alpha.1736270430406 | MIT | |
| 3.8.0-alpha.1735486215545 | MIT | |
| 3.7.4-alpha.1734454650011 | MIT | |
| 3.7.2-alpha.1733247317826 | MIT | |
| 3.7.2-alpha.1733245375527 | MIT | |
| 3.7.1-alpha.1732545994482 | MIT |
Showing the latest 30 of 416. See every release on npm