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.lazyload.js实现页面延迟载入
Dec 22 Javascript
javascript加号"+"的二义性说明
Mar 04 Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 Javascript
JSON格式的键盘编码对照表
Jan 29 Javascript
jQuery实现360°全景拖动展示
Mar 18 Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 Javascript
jQuery防止重复绑定事件的解决方法
May 14 Javascript
原生JavaScript实现AJAX、JSONP
Feb 07 Javascript
Vue.js框架路由使用方法实例详解
Aug 25 Javascript
Vue单页及多页应用全局配置404页面实践记录
May 22 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
Oct 24 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
May 25 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采集时被封ip的解决方法
2010/08/29 PHP
Symfony2框架学习笔记之表单用法详解
2016/03/18 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
python实现梯度下降算法
2020/03/24 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
基于Django统计博客文章阅读量
2019/10/29 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
工程地质勘察专业大学生求职信
2013/10/13 职场文书
自我评价怎么写正确呢?
2013/12/02 职场文书
模具数控专业自荐信
2014/01/27 职场文书
上班看电影检讨书
2014/02/12 职场文书
《海底世界》教学反思
2014/04/16 职场文书
车贷收入证明范本
2014/09/14 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
如何书写授权委托书?
2019/06/25 职场文书
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android