第一个Vue插件从封装到发布


Posted in Javascript onNovember 22, 2017

前言

这是我封装的第一个Vue插件,实现的功能是滑动选择省市区,虽然只是一个简单的插件,但还是挺开心的,记录一下步骤。

插件地址:https://github.com/leichangchun/vue-area-select     欢迎指正

准备

Vue官网插件部分的介绍虽然很简单,但是还是好好刷一遍的。由于此插件较为简单,主要用到以下两个点:

1 . Vue的插件需要有一个公开方法install

2 . 通过全局方法 Vue.use() 使用插件,在下文有栗子

创建工程

初始化工程

vue init webpack-simple projectName
cd projectName
cnpm install //安装依赖

创建开发组件目录如下

第一个Vue插件从封装到发布

开发插件

插件入口index.js需要引入插件组件,写install方法

import vueAreaSelect from './components/vue-area-select' //引入组件
const areaSelect = {
 install (Vue, options) {
 Vue.component(vueAreaSelect.name, vueAreaSelect) //全局组件
 }
}

export default areaSelect //导出

vue-area-select.vue是插件的具体实现部分,就不过多介绍,详见源码。

调试时的引用方式是引入index.js文件

//引入
import areaSelect from './index.js'

Vue.use(areaSelect)


//.vue中 使用

<vue-area-select></vue-area-select>

调试完成后,需要build,然后再npm发布。build的时候需要先修改webpack.config.js中的配置,然后 npm run build 打包文件

// entry: './src/main.js', //npm run dev时 demo调试的入口
 entry: './src/index.js', //打包时 插件入口
 output: {
 path: path.resolve(__dirname, './dist'),
 publicPath: '/dist/',
 // filename: 'build.js'
 filename: 'vue-area-select-lei.js', //打包生成文件的名字
 library:'AreaSelect', //reqire引入的名字
 libraryTarget:'umd',
 umdNamedDefine:true
 }

此时,插件开发部分已经完成。之后就需要npm发布。

NPM发布

先配置package.json,需要加入以下几项

"private": false,
 "main": "dist/vue-area-select-lei.js", //import引入时默认寻找的文件
 "repository": { //仓库地址
 "type": "git",
 "url": "https://github.com/leichangchun/vue-area-select"
 },

然后npm login 登录账号   npm publish发布插件

第一个Vue插件从封装到发布

插件的方式使用

npm install vue-area-select-lei --save //安装
//插件的方式引入使用
import areaSelect from 'vue-area-select-lei'
Vue.use(areaSelect)

 效果如下:

第一个Vue插件从封装到发布

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
学习ExtJS(二) Button常用方法
Oct 07 Javascript
jQuery弹性滑动导航菜单实现思路及代码
May 02 Javascript
推荐8款jQuery轻量级树形Tree插件
Nov 12 Javascript
js 自带的sort() 方法全面了解
Aug 16 Javascript
Bootstrap 3多级下拉菜单实例
Nov 23 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
May 08 Javascript
Vue实现todolist删除功能
Jun 26 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
May 20 Javascript
node基于async/await对mysql进行封装
Jun 20 Javascript
JavaScript观察者模式原理与用法实例详解
Mar 10 Javascript
JavaScript事件循环及宏任务微任务原理解析
Sep 02 Javascript
详细分析单线程JS执行问题
Nov 22 #Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 #jQuery
Angular实现双向折叠列表组件的示例代码
Nov 21 #Javascript
bootstrap表格内容过长时用省略号表示的解决方法
Nov 21 #Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
Nov 21 #Javascript
Angular4自制一个市县二级联动组件示例
Nov 21 #Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
Nov 21 #Javascript
You might like
PHP flush()与ob_flush()的区别详解
2013/06/03 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
二级域名转向类
2006/11/09 Javascript
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
JavaScript实现梯形乘法表的方法
2015/04/25 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
OpenLayers3实现测量功能
2020/09/25 Javascript
Python构建XML树结构的方法示例
2017/06/30 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
python虚拟环境迁移方法
2019/01/03 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
uniapp+Html5端实现PC端适配
2020/07/15 HTML / CSS
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
补充协议书范本
2014/04/23 职场文书
课外访万家心得体会
2014/09/03 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
会议简报格式范文
2015/07/20 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP