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 相关文章推荐
cookie的复制与使用记住用户名实现代码
Nov 04 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
Jun 04 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
jQuery动态星级评分效果实现方法
Aug 06 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
Aug 01 Javascript
微信小程序模板之分页滑动栏
Feb 10 Javascript
在HTML文档中嵌入JavaScript的四种方法
May 07 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
Jul 06 Javascript
详解如何webpack使用DllPlugin
Sep 30 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
Apr 22 Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 Javascript
vue实现图书管理系统
Dec 29 Vue.js
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
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
网站页面自动跳转实现方法PHP、JSP(上)
2010/08/01 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
JavaScript实现PC端四格密码输入框功能
2020/02/19 Javascript
JS实现多选框的操作
2020/06/24 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
Python性能优化技巧
2015/03/09 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
python绘制条形图方法代码详解
2017/12/19 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
allbeauty美国:英国在线美容店
2019/03/11 全球购物
P/Invoke是什么
2015/07/31 面试题
四风问题自查报告剖析材料
2014/02/08 职场文书
寒假家长评语大全
2014/04/16 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
党代会心得体会
2014/09/04 职场文书
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
导游词之江南周庄
2019/12/06 职场文书