自定义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 相关文章推荐
求解开jscript.encode代码的asp函数
Feb 28 Javascript
为指定的元素添加遮罩层的示例代码
Jan 15 Javascript
使用jquery.upload.js实现异步上传示例代码
Jul 29 Javascript
jQuery的position()方法详解
Jul 19 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
Nov 03 Javascript
AJAX和jQuery动态加载数据的实现方法
Dec 05 Javascript
bootstrap suggest搜索建议插件使用详解
Mar 25 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
Apr 13 Javascript
js实现带进度条提示的多视频上传功能
Dec 13 Javascript
vue与TypeScript集成配置最简教程(推荐)
Oct 17 Javascript
JS实现随机生成10个手机号的方法示例
Dec 07 Javascript
jquery获取input输入框中的值
Nov 13 jQuery
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
php数组键名技巧小结
2015/02/17 PHP
php正则表达式学习笔记
2015/11/13 PHP
php实现转换html格式为文本格式的方法
2016/05/16 PHP
深入理解PHP中的count函数
2016/05/31 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
JavaScript实现前端倒计时效果
2021/02/09 Javascript
python 获取et和excel的版本号
2009/04/09 Python
python正则表达式re模块详解
2014/06/25 Python
python中字符串前面加r的作用
2015/06/04 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
电大自我鉴定
2013/10/27 职场文书
清扬洗发水广告词
2014/03/14 职场文书
安全生产标语
2014/06/06 职场文书
单位租房协议书范本
2014/12/04 职场文书
2016小学新学期寄语
2015/12/04 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis