Vue组件库发布到npm详解


Posted in Javascript onFebruary 17, 2018

制作了一套自己的组件库,并发布到npm上,项目代码见https://github.com/hamger/hg-vcomponents

前期准备

  • 有一个npm账号
  • 安装了vue-cli

搭建项目

vue init webpack hg-vcomponents
cd hg-vcomponents
cnpm install

目录结构

- vue-flag-list
  + build
   + dist // 存放发布到npm的代码
   - src
     - components // 存放组件源代码 和 README.md
      - arrows
         arrows.vue
         README.md
       - round
        round.vue
         README.md
      index.js // 组件导出文件
    - examples // 存放组件的 demo
      arrows.vue
       round.vue
       index.vue // 组件 demo 的入口
     - router
       index.js // 引入 examples 下的组件,并配置路由
     App.vue
     main.js
   ...

内部代码详见 GitHub,如果对你有所帮助,给个star吧 。

项目配置

为了使项目能上传到npm上,需要配置一些地方。

build/webpack.base.conf.js

entry: {
  app: process.env.NODE_ENV === 'production'
   ? './src/components/index.js' // 生产模式下导入文件
   : './src/main.js' // 开发模式下导入文件
},

package.json

"private": false, // 因为组件包是公用的,所以 private 为 false
"main": "dist/hg-vcomponents.min.js", // 导出文件名,即 import 引入的文件

.gitignore

dist文件夹下文件是要导出的文件,所以在.gitignore文件中把dist/去掉,这样上传代码的时候也会更新打包后的文件。

开发与生产

由于配置了webpack.base.conf.js,使得项目的开发与生产独立开来。

使用npm run dev进入开发环境,就可以看到组件的demo,方便调试。使用npm run build打包组件库。

发布到npm

在你登录了npm的情况下,在根目录输入命令行(每次更新代码执行同样操作)

npm version patch
npm publish

大功告成!现在你可以在其他地方使用npm install hg-vconponents下载自己写的组件库了。

Javascript 相关文章推荐
jquery text,radio,checkbox,select操作实现代码
Jul 09 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
Jun 27 Javascript
使用JavaScript+canvas实现图片裁剪
Jan 30 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
Jun 04 Javascript
AngularJS入门教程中SQL实例详解
Jul 27 Javascript
JavaScript探测CSS动画是否已经完成的方法
Aug 30 Javascript
VUE元素的隐藏和显示(v-show指令)
Jun 23 Javascript
前端跨域的几种解决方式总结(推荐)
Aug 16 Javascript
微信小程序实现两个页面传值的方法分析
Dec 11 Javascript
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 Javascript
详解微信小程序调用支付接口支付
Apr 28 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
Feb 16 #Javascript
JavaScript中严格判断NaN的方法
Feb 16 #Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
Feb 14 #Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
Feb 13 #jQuery
jQuery实现鼠标响应式淘宝动画效果示例
Feb 13 #jQuery
jQuery实现的鼠标响应缓冲动画效果示例
Feb 13 #jQuery
浅谈实现vue2.0响应式的基本思路
Feb 13 #Javascript
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
PHP解决中文乱码
2017/04/28 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
jquery next nextAll nextUntil siblings的区别介绍
2013/10/05 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
Python实现全角半角转换的方法
2014/08/18 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
Python实例一个类背后发生了什么
2016/02/09 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
python基础教程项目二之画幅好画
2018/04/02 Python
python内存动态分配过程详解
2019/07/15 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
使用CSS Grid布局实现网格的流动
2014/12/30 HTML / CSS
戴尔美国官网:Dell
2016/08/31 全球购物
五年级科学教学反思
2014/02/05 职场文书
生产部厂长助理职位说明书
2014/03/03 职场文书
探亲假请假条
2014/04/11 职场文书
司机工作自我鉴定
2014/09/19 职场文书
小学少先队工作总结2015
2015/05/26 职场文书