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 相关文章推荐
小议javascript 设计模式 推荐
Oct 28 Javascript
javascript 单例/单体模式(Singleton)
Apr 07 Javascript
javacript使用break内层跳出外层循环分析
Jan 12 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
Mar 18 Javascript
实现placeholder效果的方案汇总
Jun 11 Javascript
简单谈谈javascript Date类型
Sep 06 Javascript
jQuery读取XML文件的方法示例
Feb 03 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
Mar 08 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
Oct 16 Javascript
layui table数据修改的回显方法
Sep 04 Javascript
一文看懂如何简单实现节流函数和防抖函数
Sep 05 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数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
PHP+ajax实现二级联动菜单功能示例
2018/08/10 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
javascript 写类方式之一
2009/07/05 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
对python 生成拼接xml报文的示例详解
2018/12/28 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
python 实现IP子网计算
2021/02/18 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
经理职责范文
2013/11/08 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL
Django实现翻页的示例代码
2021/05/24 Python
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL