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 相关文章推荐
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
Sep 22 Javascript
Javascript 高阶函数使用介绍
Jun 15 Javascript
Node.js插件安装图文教程
May 06 Javascript
JS上传组件FileUpload自定义模板的使用方法
May 10 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
May 16 Javascript
canvas实现十二星座星空图
Feb 14 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
Mar 04 Javascript
JS求Number类型数组中最大元素方法
Apr 08 Javascript
Vue 动态设置路由参数的案例分析
Apr 24 Javascript
Less 安装及基本用法
May 05 Javascript
微信小程序dom操作的替代思路实例分析
Dec 06 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 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面向对象全攻略 (五) 封装性
2009/09/30 PHP
测试PHP连接MYSQL成功与否的代码
2013/08/16 PHP
php读取目录所有文件信息dir示例
2014/03/18 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
php设计模式之单例模式实例分析
2015/02/25 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
JS版网站风格切换实例代码
2008/10/06 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
详解JavaScript对象和数组
2015/12/03 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
Vue.js实现简单动态数据处理
2017/02/13 Javascript
vue数据双向绑定原理解析(get & set)
2017/03/08 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
js+canvas实现刮刮奖功能
2020/09/13 Javascript
[00:14]护身甲盾
2019/03/06 DOTA
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
python 将md5转为16字节的方法
2018/05/29 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
英国大码女性时装零售商:Evans
2018/08/29 全球购物
采购部岗位职责
2013/11/24 职场文书
八年级历史教学反思
2014/01/10 职场文书
好听的队名和口号
2014/06/09 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
python实现图片批量压缩
2021/04/24 Python