把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系列的博客,但时至今日,才写系列的第三篇博客,想来甚是惭愧. 但是慢归慢,每一篇都要保证质量,以及要写出自己的心路历程,防止自己工作中填的坑再让读者走一 ...
随机推荐
- Bootstarp5第二弹
四.网格系统 网格系统根据设备屏幕尺寸大小分为6类: col-<!--任意屏幕--> col-sm-<!--平板 - 屏幕宽度等于或大于 576px.--> col-md-&l ...
- AD域安全攻防实践(附攻防矩阵图)
以域控为基础架构,通过域控实现对用户和计算机资源的统一管理,带来便利的同时也成为了最受攻击者重点攻击的集权系统. 01.攻击篇 针对域控的攻击技术,在Windows通用攻击技术的基础上自成一套技术体系 ...
- EF Core从TPH迁移到TPT
Intro EF Core支持多种方式处理具有继承关系的表,现在支持TPH.TPC(EF Core 7).TPT,具体的实现方式可以参考官方文档和这篇文章. 大致总结一下不同的方式的区别: TPH:所 ...
- flask-sqlalchemy入门
Flask-SQLAlchemy 是一个为 Flask 应用增加 SQLAlchemy 支持的扩展.它致力于简化在 Flask 中 SQLAlchemy 的使用.SQLAlchemy 是目前pytho ...
- [网络/Linux]CentOS7:OpenSSH升级到7.9p1 | 含: 安装Telnet/OpenSSH【telnet/ssh】
[Q0 OpenSSH/sshd/ssh/scp/sftp,及OpenSSL这些软件组件之间有什么联系吗?] 请跳转咱的另一篇博文,相信阅读完后,你会清楚很多: [网络/SSH]OpenSSH: ss ...
- 【开源免费】ChatGPT-Java版SDK重磅更新至1.0.10版,支持Tokens计算,快来一键接入。
简介 ChatGPT Java版SDK开源地址:https://github.com/Grt1228/chatgpt-java ,目前收获将近1000个star. 有bug欢迎朋友们指出,互相学习,所 ...
- FBV和CBV的区别(源码分析)
FBV和CBV源码分析 FBV直接调用user方法执行业务代码 CBV相当于在FBV上面封装了一层 from django.contrib import admin from django.urls ...
- 3385. 【NOIP2013模拟】黑魔法师之门
3385. [NOIP2013模拟]黑魔法师之门 题目大意: 做法: 代码: 题目大意: 给你一个无向无权图,每次询问加入一条边问你图中每个点的度数大于零且都是偶数的子图的个数对1000000009取 ...
- ES6 新增数组,对象,字符串的方法
1,ES6+ 新增数组方法 Array.from Array Array.from(arrayLike[, mapFn[, thisArg]]) 将类数组(伪数组)转换成数组 参数: arrayLik ...
- Python str 模块
str字符串 str 转义字符 格式化 内建函数 字符串 表示文字信息 用单引号,双引号,三引号引起来 s = 'i love wangxiaojing' print(s) i love wangxi ...
