以前就一直有个想法自己能不能封装一个类似于elementui一样的组件库,然后发布到npm上去,毕竟前端说白了,将组件v上去,然后进行数据交互。借助这次端午,终于有机会,尝试自己去封装发布组件库了

我这里了只做最简单的按钮和输入框的封装,重在如何将组件发布到npm上去

原材料:
components中两个封装好的组件

在src同级目录下创建一个文件夹packages
以后我们的所有操作都是基于packages这个文件进行的,也就是将它打包成dist

新建一个index.js的同时,将上面两个组件丢进去

1、在index.js中写入以下代码

(全局批量注册组件)

import kButton from './button.vue'
import kInput from './input.vue'const components = [kButton,kInput
]
// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
const install = function (Vue) {// 遍历注册全局组件components.forEach(component => {Vue.component(component.name, component)})// 判断是否是直接引入文件,如果是,就不用调用 Vue.use()
if (typeof window !== 'undefined' && window.Vue) {install(window.Vue)
}}// 导出的对象必须具有 install,才能被 Vue.use() 方法安装
export default {install
}

2、在package.json中加入以下代码

(加入脚本命令)

"private": false,"main": "dist/kejin-ui.umd.min.js" ,"author": {"name": "kjh"}
"lib": "vue-cli-service build --target lib packages/index.js"

3、然后执行npm run lib

最后在同级目录下生成一个dist包,我们接下来就是将dist发到npm上去

4、上传前的操作

加上一个.npmignore文件

# 忽略目录
examples/
packages/
public/# 忽略指定文件
vue.config.js
babel.config.js
*.map

这个意思就是只上传dist,其他都选择忽略,这个和gitignore有点类似

5、上传到npm上去

注册登录npm就不说了,
输入npm login,会让你输入密码账号,登录成功后
输入npm publish,就可以将你的组件发布到npm上了
这个组件的名字就是package.json里面的name,这里我们设置的是kejin-ui

让我们试一下

新建一个vue-cli的脚手架
在cmd命令行中输入npm install kejin-ui

在main.js中加入

import KejinUI from 'kejin-ui';
import 'kejin-ui/dist/kejin-ui.css';
Vue.use(KejinUI);

在app.vue中写入

<k-button>按钮</k-button>
<k-button type="red">按钮</k-button>
<k-button type="green">按钮</k-button>
<k-input></k-input>


引用成功,我这里就简单给button传入了颜色,没怎么太封装,后期会把重点放在封装上,包括以前自己写的一些组件,都会想怎么去封装,甚至是一些特效
话说npm上只有一百多万个组件库,不知道这里面中国发布了多少

感觉封装组件会对那些诸如elementui更加了解
会更确切地用到父传子,子传父,等组件信息之间的通讯

还是挺有趣的,加油吧!!!!

如何封装并发布一个属于自己的ui组件库相关推荐

  1. 如何开发一个基于 Vue 的 ui 组件库

    如何开发一个基于 Vue 的 ui 组件库 开发模式 预览 demo 在开发一个 ui 组件库时,肯定需要一边预览 demo,一边修改代码. 常见的解决方案是像开发一般项目一样使用 webpack-d ...

  2. Webix 1.5发布:一个强大的JavaScript UI组件库

    日前,XB公司发布了新版的Webix 1.5,较之前的版本,Webix 1.5增加了一些新的特性,并进行了一些改进.Webix是一个跨浏览器的JavaScript UI组件库,可以构建跨平台的HTML ...

  3. 【封装UI组件库】手把手教你仿一下Element-ui的Button组件(发布至npm)

    所谓UI组件库,就是封装了平常项目开发中经常会使用的页面组件,发布至npm库中作为插件供项目组成员及其他开发者使用(不发布也行),目的就是为了避免多次重复劳动. 以插件的形式使用可以做到即插即用,非常 ...

  4. 如何在uni-app中选择一个合适的UI组件库

    uni-app框架转眼已经发布了一年多,使用uni-app的开发者也是与日俱增.因为uni-app是一个跨端框架,所以我们大多使用它就是为了同时一套代码跨多端,选择uni-app 可以算是眼下一个比较 ...

  5. 使用 Vite 和 TypeScript 从零打造一个属于自己的 Vue3 组件库

    前言 随着前端技术的发展,业界涌现出了许多的UI组件库.例如我们熟知的ElementUI,Vant,AntDesign等等.但是作为一个前端开发者,你知道一个UI组件库是如何被打造出来的吗? 读完这篇 ...

  6. 创建, 发布自己的 Vue UI 组件库

    创建, 发布自己的 Vue UI 组件库 前言 在使用 Vue 进行日常开发时, 我们经常会用到一些开源的 UI 库, 如: Element-UI_, _Vuetify 等. 只需一行命令, 即可方便 ...

  7. 初探 amaze-vue( 基于vue.js封装的Amaze UI 组件库)

    Amaze UI 是以移动优先(Mobile first)为理念,面向 HTML5 开发的国产优秀组件库.因官方未提供vue.js版本,而且民间一直对vue.js版本的 Amaze UI 组件库呼声很 ...

  8. LuLu UI - 腾讯阅文集团出品的“半封装” 开源 Web UI 组件库,特点是面向设计、简单灵活、支持 Vue

    阅文集团前端大神张鑫旭的团队出品的面向设计的前端 UI 组件库,上手简单,定制性强. 关于 LuLu UI LuLu UI 是一款面向桌面端和移动端网页开发的组件库,由阅文集团前端团队出品.阅文集团由 ...

  9. UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)!

    2015年4月. 成都 UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)! --- 全面性能提升,UCanCode有史以来最强大的版本发布! E-Form++可 ...

最新文章

  1. 016 在大数据中,SSH无密钥登录
  2. docker多个容器一起打包_详解Docker 容器基础系统镜像打包
  3. 一道非常经典C++面试题|大厂面试
  4. 申请美国计算机科学,美国计算机科学(Computer Science)申请条件
  5. Android 横竖屏切换的处理 (转载)
  6. RANSAC算法在图像拼接上的应用的实现
  7. b 树查找时间复杂度_心里没点 B 树。。。
  8. java可达性_java垃圾回收机制--可达性算法
  9. (12)System Verilog随机变量
  10. 水滴直播风波背后:事关隐私的恐慌和“委屈”的周鸿祎
  11. 【工具-Hydra】暴力破解神器:Hydra-九头蛇
  12. js实现动画(移动方块)
  13. 10、持续集成流水线实践:流水线建设从Jenkins部署开始
  14. 处理数据之把省市自治区这样的字眼切除
  15. 题解 CF1395A 【Boboniu Likes to Color Balls】
  16. 从零开始实现Dalsa线阵相机采图
  17. QTextEdit:仅当滚动条位于底部时自动向下滚动
  18. 解决J2ME DEGUG时模拟器一闪而过的问题:
  19. 如何屏蔽键盘按键或者更改键盘按键
  20. 【PAT】2021年春季PAT甲级题解

热门文章

  1. C++实现邻接矩阵存储的图及dfs遍历
  2. 什么标准规定了aes加密_Python 爬虫进阶必备 | 关于某租房网站数据加密的分析(送两本 Python 书)...
  3. word List 21
  4. E - The Imp(博弈/动态规划)
  5. CF535C Tavas and Karafs 二分 + 结论
  6. 2021 ccpc 哈尔滨 G. Damaged Bicycle 状压 + 期望dp
  7. P6327 区间加区间sin和 线段树 + 数学
  8. P2375 [NOI2014] 动物园 kmp fail指针/倍增
  9. nowcoder 牛牛的最大兴趣组 质因子 + 思维
  10. ARC068C - Snuke Line