自定义vue组件发布到npm的方法


Posted in Javascript onMay 09, 2018

本文介绍了自定义vue组件发布到npm的方法,分享给大家,具体如下:

为什么会有这个想法呢,主要是vue项目中自定义的组件在多个项目中使用。导致修改bug的时候,总是要在项目分支中修改,然后同步到主线上,这样容易导致分支修改后没有同步到主线,慢慢的就会导致组件版本不统一,而导致升级组件很繁琐,最后可能都要去维护多个组件的不同版本,这样不是我们想要的。

所以就打算将组件打包发布到npm上,每个项目中只需要在package.json中修改组件版本即可同步最新版本。

组件发布历程

1、开始对打包不是很了解,只是简单的将原有.vue文件以及相关的css、image资源进行提取,然后放到一个项目下,下面是发布组件到npm的详细步骤:

(1)新建组件项目,通过npm init来初始化一个package.json文件
(2)将提取出来的组件放到项目路径。
(3)在package.json所在目录,执行npm adduser。这里需要注册npm帐号
(4)然后要求输入用户名、密码、注册时填的邮箱。如图:

自定义vue组件发布到npm的方法

(5)然后输入npm publish即可。

如果不出以外,组件就已经发布成功了,可以通过npm install xxxx来进行安装了。

2、在使用过程中发现了一些小问题。由于当时在index.js中使用了es6的部分语法(如:数组的map、const),导致在低版本ie中会报错,虽然可以通过修改js来解决。但是作为一个有理想有抱负的码农,这种事情不能忍,因为想element-ui这些组件都是可以将.vue文件打包之后发布的。然后就想着也要弄好了。

3、然后就开始研究怎么能通过import xx from xxx即可实现加载打包后的js。通过查找资料,发现是通过package.json中有个main属性来设置加载js的路径。如图:

自定义vue组件发布到npm的方法

4、加载问题解决了,剩下就是打包问题了。由于打包需要一些webpack的配置,所以直接用vue-cli初始化了一个工程,对其中的webpack进行调整。主要是去掉build中打包配置文件webpack.prod.conf.js,这里去掉HtmlWebpackPlugin等。

https://github.com/myGitZone/mapModule 这里是示例,该项目只是一个demo。

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

Javascript 相关文章推荐
游戏人文件夹程序 ver 3.0
Jul 14 Javascript
JavaScript入门教程(10) 认识其他对象
Jan 31 Javascript
javascript学习笔记(六) Date 日期类型
Jun 19 Javascript
jquery 字符串切割函数substring的用法说明
Feb 11 Javascript
jQuery使用getJSON方法获取json数据完整示例
Sep 13 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
JavaScript微信定位功能实现方法
Nov 29 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 Javascript
详解基于webpack&gettext的前端多语言方案
Jan 29 Javascript
jQuery实现可编辑的表格
Dec 11 jQuery
vue3获取当前路由地址
Feb 18 Vue.js
微信小程序APP的生命周期及页面的生命周期
Apr 19 Javascript
React Navigation 使用中遇到的问题小结
May 08 #Javascript
官方推荐react-navigation的具体使用详解
May 08 #Javascript
JavaScript callback回调函数用法实例分析
May 08 #Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
May 08 #Javascript
vue-cli 引入、配置axios的方法
May 08 #Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
May 08 #Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
May 08 #Javascript
You might like
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
Javascript写了一个清除“logo1_.exe”的杀毒工具(可扫描目录)
2007/02/09 Javascript
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
document.createElement()用法
2013/03/13 Javascript
jquery 显示*天*时*分*秒实现时间计时器
2014/05/07 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
python调用cmd复制文件代码分享
2013/12/27 Python
zbar解码二维码和条形码示例
2014/02/07 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
会计电算化大学生职业规划书
2014/02/05 职场文书
我的求职择业计划书
2014/04/04 职场文书
一年级小学生评语
2014/04/22 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
我的梦想演讲稿500字
2014/08/21 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
2016新年年会主持词
2015/07/06 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python