一. 环境配置
全局安装 vue-cli
:
二. 初始化项目
这里使用官方的 vue-cli
初始化一个 Vue 项目
运行项目:
三.写插件
在 src 文件夹下面建 lib 文件夹,用于存放插件。整个项目目录如下所示
根据自己的需求,实现具体功能,这里主要是做个测试,这个插件的内容就很简单。
添加
vue-chen-label.js
文件,js 中写 install
方法,内容如下:四.本地测试
4.1 将 App.vue 多余代码删除。
4.2 在 main.js 中引入
4.3 在 App.vue 中使用
4.4 本地测试的结果
伍. 配置打包
5.1 修改 package.json
因为组件包是公用的,所以private
为false
配置main结点,如果不配置,我们在其他项目中就不用import XX from
'包名'来引用了,只能以包名作为起点来指定相对的路径
5.2 修改 .gitignore 文件
因为要用dist文件夹,所以在.gitignore文件中把dist/去掉。
5.3 修改 index.html文件
5.4 修改webpack.base.conf.js
修改打包入口文件
5.5修改webpack.prod.conf.js
为了支持多种使用场景,我们需要选择合适的打包格式。
UMD 同时支持两种执行环境。显而易见,我们应该选择 UMD
格式。Webpack 中指定输出格式的设置项为 output.libraryTarget
另外,为了将css打包成一个文件,所以需要修改 webpack.prod.conf.js
中的
plugins 选项
六.用npm打包
6.1发布到npm
在 npm官网 注册一个npm账号
登录npm账号,输入用户名、密码、邮箱
执行npm publish
这里如果之前切换过数据源,得切换回来
6.2 发布成功
可以在npm官网上搜到自己写的组件
七.使用
新建另一个项目
在main.js
引用,在App.vu
e使用
八.组件UI库的搭建
组件库的结构
在components目录下放所有的组件,现在用tag
标签组件做展示。
公共的样式可以写在styles文件夹下,在index文件里引入。
index.js
作为组件库的入口。
views文件夹下的home.vue
是示例页面。
组件库的打包,在package.json
文件中创建打包命令
创建命令,这里为了方便新建了打包配置文件
打包配置代码
九.编写API文档
选用docsify,因为它本身也是基于vue写的,用Markdown写文档直接发布,入门简单,容易使用并且轻量,支持自定义主题
安装
npm i docsify-cli -g
初始化文档
默认初始化在当前目录,推荐将文档放在 docs 目录下
docsify init docs
在根目录你会发现新增了docs目录,这里面都是Markdown格式,建一个components目录放置组件的md,这里贴出我的目录:
启动本地服务
启动一个 server 方便预览,打开
http://localhost:3000
docsify serve docs
更多选项参考
主题
目前提供 vue.css
和 buble.css
,直接修改 index.html
里的 cdn 地址即可
<link rel="stylesheet" href="//unpkg.com/docsify/themes/vue.css">
<link rel="stylesheet" href="//unpkg.com/docsify/themes/buble.css">
侧边栏 load-sidebar
读取侧边栏配置文件,如果配置,默认加载当前目录下的_sidebar.md
。如果文件不存在,会显示 TOC 作为侧边栏内容。
<script src="/lib/docsify.js" data-load-sidebar></script>
你可以指定侧边栏文件名
<script src="/lib/docsify.js" data-load-sidebar="_sidebar.md"></script>
repo
文档的右上角的 GitHub
图标,如果要开启的话,将 index.html
里的 script
改成
<script src="//unpkg.com/docsify" data-repo="your/repo"></script>
这些配置也可以直接在index.html
页面配置
部署
在GitHub
上新建一个Csourer.github.io
的项目,
将项目 push
到 GitHub
仓库后到设置页面开启 GitHub Pages
功能,选择 docs/
选项
UI组件库文档
十.组件库预览页面
在package.json
页面创建打包命令
把预览页面打包到
docs
文件夹下,这样同样也可以发布在GitHub
上这是现在发布到Github上的预览地址
在线示例