自定义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 相关文章推荐
jquery 提交值不为空的元素示例代码
May 10 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
Dec 05 Javascript
JQuery处理json与ajax返回JSON实例代码
Jan 03 Javascript
基于JavaScript代码实现微信扫一扫下载APP
Dec 30 Javascript
详解JavaScript对象序列化
Jan 19 Javascript
Google 地图获取API Key详细教程
Aug 06 Javascript
原生JS实现在线问卷调查投票特效
Jan 03 Javascript
JS中input表单隐藏域及其使用方法
Feb 13 Javascript
深入学习 JavaScript中的函数调用
Mar 23 Javascript
JavaScript实现职责链模式概述
Jan 25 Javascript
Node.Js中实现端口重用原理详解
May 03 Javascript
浅析vue中的provide / inject 有什么用处
Nov 10 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
vue中的event bus非父子组件通信解析
2017/10/27 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
轻松掌握python设计模式之访问者模式
2016/11/18 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
python调用xlsxwriter创建xlsx的方法
2018/05/03 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
Django框架视图介绍与使用详解
2019/07/18 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
酒店led欢迎词
2014/01/09 职场文书
运动会通讯稿300字
2015/07/20 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
写作技巧:如何撰写一份优秀的营销策划书
2019/08/13 职场文书
Python基础之hashlib模块详解
2021/05/06 Python
python flask框架快速入门
2021/05/14 Python
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技