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 预解释
Jan 28 Javascript
对于jQuery性能的一些优化建议
Aug 13 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
Aug 21 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
Sep 02 Javascript
JavaScript面向对象分层思维全面解析
Nov 22 Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
vue如何将v-for中的表格导出来
May 07 Javascript
Vue中在新窗口打开页面及Vue-router的使用
Jun 13 Javascript
探秘vue-rx 2.0(推荐)
Sep 21 Javascript
js实现unicode码字符串与utf8字节数据互转详解
Mar 21 Javascript
JS对日期操作封装代码实例
Nov 08 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启用sphinx全文搜索的实现方法
2014/12/24 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
用js闭包的方法实现多点标注冒泡示例
2014/05/29 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
解密Python中的描述符(descriptor)
2015/06/03 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
python pandas 对series和dataframe的重置索引reindex方法
2018/06/07 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
新东网科技Java笔试题
2012/07/13 面试题
UNIX文件系统常用命令
2012/05/25 面试题
供货协议书范本
2014/04/22 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
浅谈golang 中time.After释放的问题
2021/05/05 Golang
带你学习MySQL执行计划
2021/05/31 MySQL
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android