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 相关文章推荐
关于Jqzoom的使用心得 jquery放大镜效果插件
Apr 12 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
jquery实现表单输入时提示文字滑动向上效果
Aug 10 Javascript
avalon js实现仿微博拖动图片排序
Aug 14 Javascript
jQuery树形下拉菜单特效代码分享
Aug 15 Javascript
jQuery实现的淡入淡出二级菜单效果代码
Sep 15 Javascript
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
AngularJS+Bootstrap实现多文件上传与管理
Nov 08 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
Jul 20 Javascript
ES6知识点整理之Proxy的应用实例详解
Apr 16 Javascript
Vue实现固定定位图标滑动隐藏效果
May 30 Javascript
Element 默认勾选表格 toggleRowSelection的实现
Sep 04 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中两个float(浮点数)比较实例分析
2015/09/27 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
JS类库Bindows1.3中的内存释放方式分析
2007/03/08 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
浅谈javascript 面向对象编程
2009/10/28 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
nodejs实现邮件发送服务实例分享
2017/03/29 NodeJs
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
jQuery实现移动端下拉展现新的内容回弹动画
2020/06/24 jQuery
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
Python根据服务获取端口号的方法
2019/09/25 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
大学生创业计划书的范文
2014/01/07 职场文书
大学生评语大全
2014/04/18 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python