把vue组件发布到npm
一直以来项目都使用他人开发的组件,于是乎自己也想倒腾着做一个,发布到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的更多相关文章
- vue-cli3.0 vue组件发布到npm
一.创建项目 1.vue create xxx (使用的版本是3.1.0) 2.把src目录名称改为examples 3.新建文件夹packages 用来存放组件 4.比如:新建Button组件 in ...
- krry-transfer ⏤ 基于 element 的升级版穿梭框组件发布到 npm 啦
博客地址:https://ainyi.com/81 基于 element ui 的==升级版穿梭框组件==发布到 npm 啦 看过我之前博客的同学或许知道我之前写过关于 element 穿梭框组件重构 ...
- Vue系列---【自定义vue组件发布npm仓库】
自定义vue组件发布npm仓库 参考链接:自定义vue组件发布npm仓库
- vue 组件发布记录
好久没做独立的 vue 组件了,最近突然想把一个常用的 vue 组件打成一个 npm 包,方便使用.好久不用,发现已经忘记环境怎么搭建.翻看以前的组件,才慢慢回想起来,中间还出现些错误.在这记录下开发 ...
- 手把手教你封装 Vue 组件并使用 NPM 发布
Vue 开发插件 我们可以先查看Vue的插件的开发规范 我们开发的之后期望的结果是支持 import.require 或者直接使用 script 标签的形式引入,就像这样: ps: 这里注意一下包的名 ...
- 使用Vue CLI 3将基于element-ui二次封装的组件发布到npm
前言:之前在网上找的好多都是基于vue-cli 2.x的,而使用vue-cli 3的文章比较少,Vue CLI 3 中文文档,所以我在自己尝试的时候把几篇文章结合了一下,调出来了我想要的模式,也就是V ...
- 将Vue插件发布到npm的完整记录
前言 面对越来越多的组件库,越开越多的ui库,学会发布库已经是前端必须会的事情了,也算是为开源贡献一份力量,在网络上看了一些前者的文章,也算的发布成功了,虽然还存在很多问题,路不积跬步,无以至千里 ...
- vue组件调用(用npm安装)
vue用webpack打包方式新建项目,注意刚开始可以先关闭路由和代码错误检测功能 1.建立了一个Hi.vue的组件 <template> <div>Hi~~{{msg}}-- ...
- 自定义Vue组件打包、发布到npm以及使用
本文将帮助:将自己写的Vue组件打包到npm进行代码托管,以及正常发布之后如何使用自己的组件. 本文讲述的仅仅是最基础的实现,其他复杂的操作需要非常熟悉webpack的相关知识,作者将继续学习. 先附 ...
- 【vue系列之三】从一个vue-pdf-shower,说说vue组件和npm包
前言 从去年年初开始,自己便下决心要写一个vue系列的博客,但时至今日,才写系列的第三篇博客,想来甚是惭愧. 但是慢归慢,每一篇都要保证质量,以及要写出自己的心路历程,防止自己工作中填的坑再让读者走一 ...
随机推荐
- SpringBoot笔记--Failed to read candidate component class报错的解决
问题解决 形成该错误的原因就是Spring依赖和我们所使用的JDK版本不匹配 更详细一点的话,要解决这个问题,我们就需要升高Spring版本或者降低JDK版本即可解决 否则不能够在网页里面找到Tomc ...
- VSCode使用小技巧
VSCode写C/C++项目 我们需要先下载minGW,并需要在VS Code里面下载相应的插件, 如下: 然后,将vscode保存c++项目的文件夹用vscode打开,就会出现这样的形式: 一个标准 ...
- Java笔记第六弹
字符缓冲流 //构造方法 BufferedWriter(Writer out); BufferedReader(Reader in); 相关应用: import java.io.*; public c ...
- salesforce零基础学习(一百二十七)Custom Metadata Type 篇二
本篇参考: salesforce零基础学习(一百一十一)custom metadata type数据获取方式更新 https://developer.salesforce.com/docs/atlas ...
- 【备忘录】 主定理 Master Theorem (转载)
备忘录 https://zhuanlan.zhihu.com/p/113406812
- java数组使用、Arrays类使用 、排序方法
数组使用 数组的基本使用: package charpter4; public class ArrayDemo2 { public static void main(String[] args) { ...
- 基于Locust实现MQTT协议服务的压测脚本
最近在忙业务的间隙,穿插着做了些性能测试. 一.背景简介 业务背景大概介绍一下,就是按照国标规定,车辆需要上传一些指定的数据到ZF的指定平台,同时车辆也会把数据传到企业云端服务上,于是乎就产生了一些性 ...
- TiDB SQL调优案例之避免TiFlash帮倒忙
背景 早上收到某系统的告警tidb节点挂掉无法访问,情况十万火急.登录中控机查了一下display信息,4个TiDB.Prometheus.Grafana全挂了,某台机器hang死无法连接,经过快速重 ...
- Unity3D中的Attribute详解(四)
本篇我们将逐一讲解Unity中经常使用的Attribute(Unity对应的文档版本为2018.1b). 首先是Serializable,SerializeField以及NonSerialized,H ...
- Mybatis 获取自增主键 useGeneratedKeys与keyProperty解答
Mybatis 获取自增主键 31bafebb-a95b-4c35-a949-8bc335ec6e2e 今天开发的时候遇到一个疑惑,业务场景是这样的, 但是百度好久没有找到合适的解答,于是自己向同事了 ...
