自定义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 相关文章推荐
基于Asp.net与Javascript控制的日期控件
May 22 Javascript
HTML页面滚动时获取离页面顶部的距离2种实现方法
Sep 05 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
Dec 01 Javascript
js Array操作的最简短最容易理解方法
Dec 09 Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 Javascript
js 实现数值的千分位及保存小数方法(推荐)
Aug 01 Javascript
vue模板语法-插值详解
Mar 06 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
Aug 19 Javascript
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
Angularjs实现多图片上传预览功能
Jul 18 Javascript
JS根据json数组多个字段排序及json数组常用操作
Jun 06 Javascript
vue 导出文件,携带请求头token操作
Sep 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
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
PDO::inTransaction讲解
2019/01/28 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
JQuery切换显示的效果实例代码
2013/02/27 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
javascript常用正则表达式汇总
2015/07/31 Javascript
JS获取input file绝对路径的方法(推荐)
2016/08/02 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
PyCharm 常用快捷键和设置方法
2017/12/20 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
详解python实现小波变换的一个简单例子
2019/07/18 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
基于Python中的yield表达式介绍
2019/11/19 Python
Python实现ATM系统
2020/02/17 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
python 模块导入问题汇总
2021/02/01 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
精神文明建设标语
2014/06/16 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
庐山导游词
2015/02/03 职场文书
大学团日活动总结书
2015/05/11 职场文书