自定义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 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
javascript之解决IE下不渲染的bug
Jun 29 Javascript
防止动态加载JavaScript引起的内存泄漏问题
Oct 08 Javascript
推荐10个超棒的jQuery工具提示插件
Oct 11 Javascript
js实现分享到随页面滚动而滑动效果的方法
Apr 10 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
Aug 21 Javascript
jQuery Raty 一款不错的星级评分插件
Aug 24 Javascript
bootstrap table服务端实现分页效果
Aug 10 Javascript
详解Vue SPA项目优化小记
Jul 03 Javascript
vue2 设置router-view默认路径的实例
Sep 20 Javascript
Vue Echarts实现可视化世界地图代码实例
May 07 Javascript
在小程序中推送模板消息的实现方法
Jul 22 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
编写PHP的安全策略
2006/10/09 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
python的绘图工具matplotlib使用实例
2014/07/03 Python
跟老齐学Python之网站的结构
2014/10/24 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
python中range()与xrange()用法分析
2016/09/21 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
python+django快速实现文件上传
2016/10/24 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
CSS实现的一闪而过的图片闪光效果
2014/04/23 HTML / CSS
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
收款授权委托书
2014/10/02 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
2016大一新生军训感言
2015/12/08 职场文书
送给自己的励志语句:要安静的优秀,悄无声息的坚强
2019/11/26 职场文书
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript