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子窗口ModalDialog中操作父窗口对像
Dec 11 Javascript
JavaScript分秒倒计时器实现方法
Feb 02 Javascript
举例讲解Node.js中的Writable对象
Jul 29 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
JavaScript学习笔记之取数组中最大值和最小值
Mar 23 Javascript
JS中的forEach、$.each、map方法推荐
Apr 05 Javascript
又一枚精彩的弹幕效果jQuery实现
Jul 25 Javascript
js的OOP继承实现(必看篇)
Feb 18 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
Jun 14 Javascript
vue中监听返回键问题
Aug 28 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
Feb 10 Javascript
从零开始在vue-cli4配置自适应vw布局的实现
Jun 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容易忘记的知识点分享
2013/04/30 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
jQuery控制的不同方向的滑动(向左、向右滑动等)
2014/07/18 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
实例分析JS与Node.js中的事件循环
2017/12/12 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
实例讲解JS中pop使用方法
2019/01/27 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
对python3标准库httpclient的使用详解
2018/12/18 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
python exit出错原因整理
2020/08/31 Python
利用python实现汉诺塔游戏
2021/03/01 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
财务主管的岗位职责
2013/12/30 职场文书
党员教师工作决心书
2014/03/13 职场文书
聚美优品广告词改编
2014/03/14 职场文书
环境卫生倡议书
2014/08/29 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
公司文体活动总结
2015/05/07 职场文书