自定义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 相关文章推荐
js parentElement和offsetParent之间的区别
Mar 23 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
Jul 13 Javascript
JavaScript验证电子邮箱的函数
Aug 22 Javascript
ajax读取数据后使用jqchart显示图表的方法
Jun 10 Javascript
js canvas仿支付宝芝麻信用分仪表盘
Nov 16 Javascript
详谈js模块化规范
Jul 07 Javascript
Javascript中 toFixed四舍六入方法
Aug 21 Javascript
详解基于mpvue的小程序markdown适配解决方案
May 08 Javascript
js中的 || 与 && 运算符详解
May 24 Javascript
vue-router重定向和路由别名的使用讲解
Jan 19 Javascript
axios实现文件上传并获取进度
Mar 25 Javascript
Vue 实现登录界面验证码功能
Jan 03 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实现适用于自定义的验证码类
2016/06/15 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
JavaScript中创建对象的模式汇总
2016/04/19 Javascript
AngularJS入门教程之路由与多视图详解
2016/08/19 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
python异常和文件处理机制详解
2016/07/19 Python
python3+PyQt5实现柱状图
2018/04/24 Python
Python unittest模块用法实例分析
2018/05/25 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
详解如何修改python中字典的键和值
2020/09/29 Python
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
七一党建活动方案
2014/01/28 职场文书
销售冠军获奖感言
2014/02/03 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
2016新年慰问信范文
2015/03/25 职场文书
朋友聚会开场白
2015/06/01 职场文书
python OpenCV学习笔记
2021/03/31 Python
python - asyncio异步编程
2021/04/06 Python