自定义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 相关文章推荐
比较简单的一个符合web标准的JS调用flash方法
Nov 29 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
Aug 24 Javascript
JavaScript原型链示例分享
Jan 26 Javascript
JavaScript异步加载浅析
Dec 28 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
Jun 13 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
Oct 25 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
Dec 22 Javascript
vue.js移动端app实战1:初始配置详解
Jul 24 Javascript
微信小程序日历组件使用方法详解
Dec 29 Javascript
JS实现滚动条触底加载更多
Sep 19 Javascript
一篇文章弄清楚Ajax请求的五个步骤
Mar 17 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数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
codeigniter自带数据库类使用方法说明
2014/03/25 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
python从入门到精通(DAY 1)
2015/12/20 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python File(文件) 方法整理
2019/02/18 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
计算机专业毕业生自荐信
2013/12/31 职场文书
公司司机岗位职责
2014/02/07 职场文书
公立医院改革实施方案
2014/03/14 职场文书
公证书样本
2014/04/10 职场文书
2016年教师新年寄语
2015/08/18 职场文书