自定义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获取下拉列表的值为null的解决方法
Mar 18 Javascript
js 字符串转化成数字的代码
Jun 29 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
May 06 Javascript
js实现简单排列组合的方法
Jan 27 Javascript
jQuery简单实现上下,左右滑动的方法
Jun 01 Javascript
在一个页面重复使用一个js函数的方法详解
Dec 26 Javascript
BootStrap模态框不垂直居中的解决方法
Oct 19 Javascript
JavaScript Math对象和调试程序的方法分析
May 13 Javascript
记录vue做微信自定义分享的一些问题
Sep 12 Javascript
JS array数组检测方式解析
May 19 Javascript
Vue点击切换Class变化,实现Active当前样式操作
Jul 17 Javascript
vue+iview使用树形控件的具体使用
Nov 02 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
thinkphp模板用法和内容输出实例
2014/11/28 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
List Installed Hot Fixes
2007/06/12 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
vuex如何重置所有state(可定制)
2019/01/17 Javascript
vue-router传参用法详解
2019/01/19 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
Python类的专用方法实例分析
2015/01/09 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
中专毕业生个人职业生涯规划
2014/02/19 职场文书
班班通项目实施方案
2014/02/25 职场文书
普通话演讲稿
2014/09/03 职场文书
投标承诺函范文
2015/01/21 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js
浅谈MySQL user权限表
2021/06/18 MySQL
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android