一直以来项目都使用他人开发的组件,于是乎自己也想倒腾着做一个,发布到npm 在其他项目里直接使用,这个组件上传和纯js 还是有一定区别的,在这个过程中也遇到了一些小问题,网上找了许多案例,都不是太全面,趁有时间自己记录一下

参考网上大佬案例改装一个适合自己需求的运动的时间刻度

一、项目创建

首选是创建一个项目,这个就不用说了,大家都会

c:> vue create my-project

二、组件编写

在src/components下创建一个TimeAxisAuto.vue

三、全局注册

再建一个indx.js来进行组件全局注册

import Vue from "vue";
import TimeAxisAuto from "./TimeAxisAuto.vue"; const Components = {
TimeAxisAuto
}; Object.keys(Components).forEach(name => {
Vue.component(name, Components[name]);
}); export default Components;

四、配置package.json

其中大致配置

{
"name": "time-axis-auto", // 包名字
"version": "0.1.3", //包版本,x.x.x的格式,符合语义化版本规则
"description": "It is a running timeline component. ", //一些描述信息
"main": "./dist/time-axis-auto.common.js", // 入口文件,这里指定为dist目录下打包生成的js
"author": "dex", //作者信息
"email": "d1236688@163.com", // 邮件地址
"license": "ISC",// 许可证,默认是ISC、有的默认是MIT
"scripts": { // 运行脚本命令
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"distribute": "vue-cli-service build --target lib --name time-axis-auto ./src/components/index.js" // 这里我们使用@vue/cli 3.0自带的打包功能,将项目打包
},
"bugs": {
"url": "https://github.com/dengxiaoning/time-axis-auto.git"
},
}

五、 配置vue.config.js

module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
css:{ // 这一步配置将css强行内联,否则发布后的组件在使用时不会携带css
extract:false
}
}

publicPath: process.env.NODE_ENV === 'production' ? './' : '/',这步用于修改vue加载资源目录

css:{ // 这一步配置将css强行内联,否则发布后的组件在使用时不会携带css extract:false }

六、 打包发布

好了配置完成后

1. 执行npm run distribute将项目打包
/  Building for production as library (commonjs,umd,umd-min)...

 DONE  Compiled successfully in 2551ms                                                                          18:49:03

-  Building for production as library (commonjs,umd,umd-min)...

 DONE  Compiled successfully in 2713ms                                                                          18:49:03

/  Building for production as library (commonjs,umd,umd-min)...

 DONE  Compiled successfully in 3184ms                                                                          18:49:04

  File                              Size                 Gzipped

  dist\time-axis-auto.umd.min.js    21.79 KiB            11.32 KiB
dist\time-axis-auto.umd.js 44.76 KiB 16.82 KiB
dist\time-axis-auto.common.js 44.28 KiB 16.67 KiB Images and other types of assets omitted.
2. 再执行 npm publish ( 取消发布 npm unpublish --force xxx包名 )

ok 发布成功

直接

 npm install time-axis-auto --save

.vue import 'time-axis-auto' 即可全局使用了

练习案例在线demo https://www.benpaodehenji.com/timeline/

源码地址 https://github.com/dengxiaoning/time-axis-auto.git"

把vue组件发布到npm的更多相关文章

  1. vue-cli3.0 vue组件发布到npm

    一.创建项目 1.vue create xxx (使用的版本是3.1.0) 2.把src目录名称改为examples 3.新建文件夹packages 用来存放组件 4.比如:新建Button组件 in ...

  2. krry-transfer ⏤ 基于 element 的升级版穿梭框组件发布到 npm 啦

    博客地址:https://ainyi.com/81 基于 element ui 的==升级版穿梭框组件==发布到 npm 啦 看过我之前博客的同学或许知道我之前写过关于 element 穿梭框组件重构 ...

  3. Vue系列---【自定义vue组件发布npm仓库】

    自定义vue组件发布npm仓库 参考链接:自定义vue组件发布npm仓库

  4. vue 组件发布记录

    好久没做独立的 vue 组件了,最近突然想把一个常用的 vue 组件打成一个 npm 包,方便使用.好久不用,发现已经忘记环境怎么搭建.翻看以前的组件,才慢慢回想起来,中间还出现些错误.在这记录下开发 ...

  5. 手把手教你封装 Vue 组件并使用 NPM 发布

    Vue 开发插件 我们可以先查看Vue的插件的开发规范 我们开发的之后期望的结果是支持 import.require 或者直接使用 script 标签的形式引入,就像这样: ps: 这里注意一下包的名 ...

  6. 使用Vue CLI 3将基于element-ui二次封装的组件发布到npm

    前言:之前在网上找的好多都是基于vue-cli 2.x的,而使用vue-cli 3的文章比较少,Vue CLI 3 中文文档,所以我在自己尝试的时候把几篇文章结合了一下,调出来了我想要的模式,也就是V ...

  7. 将Vue插件发布到npm的完整记录

    前言 ​ 面对越来越多的组件库,越开越多的ui库,学会发布库已经是前端必须会的事情了,也算是为开源贡献一份力量,在网络上看了一些前者的文章,也算的发布成功了,虽然还存在很多问题,路不积跬步,无以至千里 ...

  8. vue组件调用(用npm安装)

    vue用webpack打包方式新建项目,注意刚开始可以先关闭路由和代码错误检测功能 1.建立了一个Hi.vue的组件 <template> <div>Hi~~{{msg}}-- ...

  9. 自定义Vue组件打包、发布到npm以及使用

    本文将帮助:将自己写的Vue组件打包到npm进行代码托管,以及正常发布之后如何使用自己的组件. 本文讲述的仅仅是最基础的实现,其他复杂的操作需要非常熟悉webpack的相关知识,作者将继续学习. 先附 ...

  10. 【vue系列之三】从一个vue-pdf-shower,说说vue组件和npm包

    前言 从去年年初开始,自己便下决心要写一个vue系列的博客,但时至今日,才写系列的第三篇博客,想来甚是惭愧. 但是慢归慢,每一篇都要保证质量,以及要写出自己的心路历程,防止自己工作中填的坑再让读者走一 ...

随机推荐

  1. gRPC之.Net6中的客户端和服务端共用proto协议文件

    1.说明 在上一篇文章gRPC之.Net6中的初步使用介绍中,我们简单的介绍了gRPC在服务端.客户端以及Web项目中的使用. 有一个问题,不知道大家发现没有,就是不管在服务端项目还是客户端项目中,我 ...

  2. Java8 Optional使用方式

    参考博客:https://blog.csdn.net/zjhred/article/details/84976734

  3. ovs-dpdk:revalidator源码解析

    revalidator是做什么的?需要知道哪些东西? 有关于revalidator需要弄明白的是以下三个问题: 通过ovs-vsctl list open_vs可以看到other_config里面有两 ...

  4. HTTP 返回状态码403,404,502等不同报错原因及解决思路

    要学会看日志rpm的默认路径 /var/log/nginx/源码的默认路径 安装路径/logs/ 排错思路: 1)服务器启动失败,直接"nginx -t"测试语法   看配置文件是 ...

  5. Net DB Web多级缓存的实现

    1.客户端缓存(浏览器缓存) HTTP有一套控制缓存的协议-RFC7234,其中最重要的就是cache-control这个相应报文头,服务器返回时,如果Response带上 cache-control ...

  6. ACM-NEFUOJ-最小树-Prim算法

    最小树1 Description 某省长调查交通情况,发现本省交通事故发生不断,于是决定在本省内全部修建地铁. 该省长得到的统计表中列出了任意两市之间的距离,为了确保任何两个市都可以直接 或者间接实现 ...

  7. 记一次 .NET 某手术室行为信息系统 内存泄露分析

    一:背景 1. 讲故事 昨天有位朋友找到我,说他的程序内存存在泄露导致系统特别卡,大地址也开了,让我帮忙看一下怎么回事?今天上午看了下dump,感觉挺有意思,在我的分析之旅中此类问题也蛮少见,算是完善 ...

  8. Goalng:基础复习一遍过

    Go(又称Golang)是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言. 剖析 Hello world 新建文件 main.go 写入以下内容: package ma ...

  9. 数据泵:导入导出dblink

    环境介绍:12c->19c [oracle@enmoedu1 dpdump]$ expdp system/oracle directory=DATA_PUMP_DIR dumpfile=STAT ...

  10. Golang一日一库之 日志库 zap

    简介 在开发过程中 会使用到日志库去记录错误的日志,尤其是golang中 有无穷无尽的error 如果不记录,当你的代码出错,就无从排错了. zap 是开源的 Go 高性能日志库 主要有以下特点: 支 ...