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中each()的使用方法说明
Aug 19 Javascript
基于jquery实现漂亮的动态信息提示效果
Aug 02 Javascript
使用jQuery操作Cookies的实现代码
Oct 09 Javascript
谈谈Jquery中的children find 的区别有哪些
Oct 19 Javascript
Javascript基础回顾之(二) js作用域
Jan 31 Javascript
js实现textarea限制输入字数
Feb 13 Javascript
详解JavaScript数组过滤相同元素的5种方法
May 23 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
Sep 29 Javascript
Node 搭建一个静态资源服务器的实现
May 20 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 Javascript
vue+koa2搭建mock数据环境的详细教程
May 18 Javascript
浅谈实现在线预览PDF的几种解决办法
Aug 10 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作为Shell脚本语言使用
2006/10/09 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
关于jQuery中.attr()和.prop()的问题探讨
2013/09/06 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
jQuery AJAX应用实例总结
2020/05/19 jQuery
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
大学生冰淇淋店商业计划书
2014/01/14 职场文书
自荐信写法介绍
2014/01/25 职场文书
测试工程师程序员求职信范文
2014/02/20 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
初中家长寄语
2014/04/02 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
党员违纪检讨书
2015/05/05 职场文书
学校推普周活动总结
2015/05/07 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书