博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建、发布自己的 Vue UI 组件库
阅读量:5915 次
发布时间:2019-06-19

本文共 2713 字,大约阅读时间需要 9 分钟。

前言

在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI, Vuetify 等.

只需一行命令, 即可方便的将这些库引入我们当前的项目:

npm install vuetify// oryarn add vuetify复制代码

但是当我们自己开发了一个 UI Component, 需要在多个项目中使用的时候呢? 我们首先想到的可能是直接复制一份过去对吗?

这样做是很方便, 但是有两个问题:

  • 当该 component 需要更新时, 我们需要手动维护所有用到该 component 的更新
  • 当有多个 component 需要共享时, 手动复制过于繁琐

那么, 我们为什么不发布一个 UI 组件库给自己用呢?

本文笔者将介绍如何一步步, 创建并发布自己的 Vue UI 组件库.

初始化 project

这里我们使用官方的 vue-cli 初始化一个 Vue 项目

npm install -g @vue/cli# oryarn global add @vue/clivue create personal-component-set复制代码

进入我们新建的项目, 让我们看看当前的项目文件:

接下来让我们写一个简单的 Vue component. 这里我写了一个简单的顶栏控件, 用来展示: 页面标题, 我的个人信息, github 源码链接等信息.

代码如下:

复制代码

以上代码构成了一个非常简单的 Vue component, 提供了一个 props: sourceCodeLink 方便定制化跳转链接, 提供了一个 event: to-main-page, 用于触发用户跳转回主页的回调.

效果如图:

配置 project

下面我们来配置当前项目, 以使其可以发布到 npm 上.

首先我们编辑入口文件 src/components/index.js, 使其被作为 UI 库导入时能自动在Vue中注册我们的 Component:

import Vue from 'vue'import TopBar from './TopBar.vue'const Components = {  TopBar}Object.keys(Components).forEach(name => {  Vue.component(name, Components[name])})export default Components复制代码

接下来我们添加 build 项目的脚本到 package.jsonscripts 中:

其中 --name libraryName 指定的是要发布的Library的名称, 我们执行上面新加的脚本:

可以看到 build 生成了各种版本可以用于发布的js文件

这里我们选择默认发布我们的 *.common.js 文件, 所以我们在 package.json中添加main属性.

指定该属性后, 当我们引用该组件库时, 会默认加载 main 中指定的文件.

最后, 我们再配置 package.json中的 files属性, 来配置我们想要发布到 npm 上的文件路径.

我们这里将用户引用我们的组件库可能用到的所有文件都放进来:

npm 发布

首先我们注册一个 npm 账号 (如果已有账号, 可以跳过此步骤)

npm add user// 按照提示输入用户名, 邮箱等即可复制代码

然后使用 npm login 登录注册号的状态

登录后可以使用 npm whoami 查看登录状态

在发布之前, 我们修改一下项目的名称(注意不要和已有项目名称冲突), 推荐使用 @username/projectName 的命名方式.

接下来我们就可以发布我们的 UI 组件库了, 在发布之前我们再编译一次, 让build出的文件为我们最新的修改:

npm run build-bundle复制代码

我们使用下面的命令发布我们的项目:

npm publish --access public复制代码

需要注意的是 package.json中指定的version属性: 每次要更新我们的组件库都需要更新一下version(毕竟同一个version 的代码不同,很容易让人产生疑惑)

测试使用

这样我们就完成了自己的 UI 组件库的发布. 接下来我们可以在任何需要使用到该组件库的项目中使用:

npm install --save @ssthouse/personal-component-set复制代码

然后在index文件 (如src/main.js) 中引入该组件库:

import '@ssthouse/personal-component-set'复制代码

接下来我们就可以在 Vuetemplate中使用组件库中的 Component了:

复制代码

最后

经过上面这些步骤后, 我们就拥有了一个属于自己的组件库了. 我们可以随时更新, 发布自己新版的组件库.

而依赖了该组件库的项目只需要使用简单的 npm 命令即可更新 : )

对数据可视化和 D3.js 感兴趣 ?

这里是我的 D3.js数据可视化 的 github 地址, 欢迎 start & fork :tada:

你也可以在这里找到我 : )

转载地址:http://xdwvx.baihongyu.com/

你可能感兴趣的文章
挖掘数据金矿 领军协同创新 曙光荣膺“2016大数据创新应用领袖企业”称号
查看>>
oschina程序开发
查看>>
《从零开始学Swift》学习笔记(Day 40)——析构函数
查看>>
SVN Hooks的介绍及使用
查看>>
axios 拦截 , 页面跳转, token 验证(自己摸索了一天搞出来的)
查看>>
如何将经纬度利用Google Map API显示C# VS2005 Sample Code
查看>>
开发人员可以提高效率的chrome插件推荐
查看>>
性能测试分享:性能测试工具开发的案例分享(下)
查看>>
linux sar命令详解
查看>>
通过Gearman实现MySQL到Redis的数据复制
查看>>
eclipse 自动为getter和setter添加注释
查看>>
我的友情链接
查看>>
DataSet
查看>>
XMLHttpRequest - 原始AJAX初步
查看>>
有序的双链表
查看>>
mvn package时设置了maven.test.skip=true依旧执行单元测试
查看>>
Java NIO中的通道Channel(二)分散/聚集 Scatter/Gather
查看>>
四则运算
查看>>
Qt5 for Android: incompatible ABI
查看>>
zookeeper学习
查看>>