编写一个Vue插件,上传NPM官网开源使用

npm发布自己的组件UI包(详细步骤,图文并茂) 目前做前端项目,一直采用的方式去引用别人的组件包,调用方法。其实在开发中,每个开发者基本都写过单独的组件,如何让自己的组件能够重复的利用,如何让别人也享受到您的成果,这里将一步一步地介绍如何通过npm来发布组件包。 阅读详情

插件开发及上传NPM流程

  1. 完成组件封装、组件完成统一封装成插件
  2. 插件入口文件配置
  3. src/main.js 中引入口文件、安装插件
  4. 配置 package.json 文件
  5. npm run lib 打包
  6. umd.min.js 配置到 package.json
  7. 登录 NPM 上传插件
  8. npm i 安装引入使用

一、编写好组件

在这里插入图片描述

二、插件入口文件配置 plugins/index.js

	/**
	 * 入口文件
	 * 插件的入口 => 统一管理组件
	 */
	/**
	 * 动态引入文件(webpack的API)
	 * Vue中直接使用(已经集成无需引入)
	 * 参数含义 : (目标路径,是否匹配子集文件夹,配置以.vue为后缀的文件)
	 */
	import Vue from 'vue'
	
	// 然后再定义你的插件
	
	const requireComponent = require.context('./',true,/\.vue$/);
	
	const install = vue => {
		if(install.installed) return false;
		install.installed
		// requireComponent.keys() ==> []
		requireComponent.keys().forEach(fileName => {
			const currComponent = requireComponent(fileName);		// 获取当前组件	
			const componentName = currComponent.default.name;		// 获取组件名称
			Vue.component(componentName,currComponent.default||currComponent);	// 组件全局注册(组件名称,组件选项对象)
		});
		// 全局自定义指令
		Vue.directive('focus',{
			inserted: function(el) {
				el.focus();		// input框自动获得焦点
			}
		})
	}
	
	// 合格的插件 需要环境检测
	if(typeof window !== 'undefined'&&window.Vue) install(Window.Vue)
	
	export default {
		install
	}

三、 src/main.js中引入口文件、安装插件

	import pMsg from './plugins/index.js'
	Vue.use(pMsg)

四、配置package.json

	"name": "vue-selfname-selfname-selfname-selfname",
	"private": false,
	"license": "MIT",
	"description": "A Vue.js project for message",
	"scripts": {
	  	"lib": "vue-cli-service build --target lib --name vue-selfname-selfname-selfname-selfname --dest lib src/plugins/index.js"
	},

五、npm run lib 打包

	npm run lib

出现 'vue-cli-service' 不是内部或外部命令,则需要 npm install -D @vue/cli-service
打包完成效果:
在这里插入图片描述

六、打包完成后的umd.min.js文件配置到package.json中

	"name": "vue-msg-alertmsg-selfname-selfname",
	 "private": false,
	 "license": "MIT",
	 "description": "A Vue.js project for message",
	 "main": "lib/vue-selfname-selfname-selfname-selfname.umd.min.js",

七、终端 npm login 登录NPM官网,npm publish 上传插件

	npm login
	npm publish

在这里插入图片描述

八、npm install 安装引入使用

src/main.js
在这里插入图片描述
src/App.vue
在这里插入图片描述

九、使用效果

在这里插入图片描述

vue3+ts组件库发布npm并实现按需引入 vue3+typescript组件库发布npm包,并实现按需引入功能(付源码及组件库实现基础原理浅析) 阅读详情

相关推荐

上传vue组件到npm npm私服

发布vue组件到npm库

TVM的博客 1139

Vuejs 使用 lib 库模式打包 umd 解决 NPM 包发布的问题

VueJs使用 lib 库模式打包 umd 解决 npm 发布包的问题

weixin_42971933的博客 3198

告别手动拖拽!PyQt5/PyQt6 QTableView列宽自适应窗口的三种实战方案(附性能对比)

本文详细介绍了PyQt5/PyQt6中QTableView列宽自适应窗口的三种实战方案,包括Stretch模式、resizeEvent手动计算和ResizeToContents模式,并附有性能对比。帮助开发者解决窗口大小变化时列宽不变的常见问题,提升用户体验和开发效率。

weixin_42538752的博客 232

详解:Vue cli3 库模式搭建组件库并发布到 npm

市面上目前已有各种各样的UI组件库,比如 Element 和 iView,他们的强大毋庸置疑。但是我们面临的情况是需求越来越复杂,当它们不能再满足我们需求的时候,这个时候就有必要开发一套属于自己团队的组件库了。 所以本文的目的就是让读者能通过此文,小能做一个简单的插件供人使用,大能架构和维护一个组件库不在话下。 以下一个简单的颜色选择器插件vColorPicker讲述从开发到上线到npm的流程。 ...

weixin_34187822的博客 927

保姆级避坑指南:用Livox官方工具搞定Mid-360多雷达自动标定(附源码Bug修复)

本文详细解析了使用Livox官方工具进行Mid-360多雷达自动标定的全流程,包括环境搭建、工具链配置、关键Bug修复及数据采集最佳实践。重点解决了PointCloudMapper.cpp边界检查缺失和calibration.cpp点云显示问题,提供了实用的代码修复方案和标定质量评估指标,帮助开发者高效完成激光雷达标定任务。

weixin_29053695的博客 281

汽车电子零部件(14):TMS热管理系统

TMS(thermal management system)热管理系统,这是新能源汽车诞生后随之而产生的一种新汽车零部件,一旦热管理失控会触发自燃,这种现象也是对EV来说是件头疼的事。汽车的热管理系统(TMS)是一个关键部件,有助于调节汽车电池组、车厢和其他车辆系统的温度。TMS的主要目的是在驾驶过程中保持最佳的电池性能和乘客舒适度。TMS使用各种加热和冷却系统来调节电池组和车厢的温度,并通过优化其使用,降低能耗,提高车辆的整体效率。

码农17年的博客 3161

npm发布自己的安装包流程,超级详细,傻瓜式教学

npm包发布流程简介 1.创建项目 2.完整目录结构 src下的plugins文件夹作为我对外暴露的组件文件夹 下面以mapcontainer组件为例,向大家展示全局暴露跟局部暴露 1,mapcontainer文件夹下创建组件map-container.vue和用于单独暴露组件的index.ts 2,map-container.vue组件中的name属性一定要填写,这个name就是我们对外暴露后,所使用的组件名 index.ts文件内容: 为组件提供 install 方法,供组件对外按需引入,将组件的n

weixin_45884080的博客 1767

更新|芒果YOLOv8改进182:注意力机制MLLA:即插即用|融合 Mamba 设计精髓的线性注意力视觉Transformer

芒果YOLOv8改进:即插即用,最新注意力机制MLLA:融合 Mamba 设计精髓的线性注意力视觉Transformer

包括YOLOv5、YOLOv7、YOLOv8等模型改进 864

VUE编写插件上传npm

前言 这篇文章是准备不写的,因为之前写过uniapp插件上传npm,然后加上在手写VUE步骤条组件这篇文章中有提到后期会将这个步骤条组件上传到npm仓库,然后我就用上传uniapp插件的方式试着上传VUE这个插件,上传是能上传,结果在VUE项目中npm安装的这个插件的时候就无法安装,于是我就再思考,哦原来这个uniapp插件上传和VUE插件上传还不一样,于是就有了这篇文章! 开干 1.创建一个空VUE项目 之前创建VUE项目的时候,应该用的是下面这个命令 vue init webpack you-proje

程序员劝退师的博客 584

儿童启蒙教育APP

pinyinList.add(createPinyin("a", "啊,像阿姨的阿", R.raw.pinyin_a));pinyinList.add(createPinyin("i", "衣,像衣服的衣", R.raw.pinyin_i));pinyinList.add(createPinyin("u", "乌,像乌鸦的乌", R.raw.pinyin_u));pinyinList.add(createPinyin("ü", "鱼,像小鱼的鱼", R.raw.pinyin_v));-- 固定竖屏 -->

寒寒豆豆软件公司的博客 167

【WRF-Chem教程第四期上】运行 WRF-Chem 模型

完整介绍运行 WRF-Chem 模型的详细步骤

WW、forever的博客 3111

制作一个UI插件上传npm及安装使用的步骤

目录 一、制作npm插件。 1、注册npm账号。 2、本地创建项目。 2.1、命令行使用vue-cli创建一个webpack项目。 2.2、在src下新建testqzz。 2.3、把下面代码分别复制进index.js和test.vue中。 2.4、上传到npm。 二、安装npm插件到本地项目。 2.1、安装插件。 2.2、引入插件。 2.3、使用插件。 一、制作npm插件。 1、注册npm账号。 打开npm官网,使用邮箱注册一个账号(用记事本记...

qq1722377628的博客 737

具身智能(26):RDK S100的LeRobot或Agile X piper机械臂控制模型

本文档详细介绍了基于ROS2的机器人控制模型架构与标定数据联动机制。核心采用"感知-规划-控制"闭环流程,通过激光雷达、相机和IMU的融合数据实现厘米级定位(≤1cm)。文档包含两大控制模型配置:1)RDKLeRobot模型,重点说明PID参数调节和标定文件路径设置;2)AgileXPiper模型,强调驱动安装与外部标定文件集成。针对常见问题提供解决方案,如控制指令无响应需验证标定路径,运动偏差过大需重新标定等。最后给出批量部署方案,通过复制基准配置文件实现多机器人快速配置,要求定位偏差

码农17年的博客 179

Vue插件封装,以及插件发布到npm

1、常见插件类型 插件通常会为 Vue 添加全局功能,常见的几种如下 添加全局方法或者属性,如: vue-custom-element 添加全局资源:指令/过滤器/过渡等,如 vue-touch 通过全局 mixin 方法添加一些组件选项,如: vue-router 添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。 一个库,提供自己的 API,同时提供上面提到的...

yan_yuanfeng的博客 1980

大数据在电力行业的应用案例解析-【电力技术】(九)大数据在电力储能运维中的深度应用(含故障预测代码)

大数据技术为电力储能运维提供了“精准化、智能化、高效化”的解决方案,破解了传统运维的核心痛点,实现了储能系统从“被动抢修”到“主动运维”的转型,为新型电力系统建设提供了重要支撑。当前,随着储能产业的快速发展,大数据与储能运维的融合将更加深入,未来将结合人工智能、物联网、区块链等技术,实现储能运维的全流程智能化——从设备故障的提前预警,到寿命的精准预测,再到运维策略的自动优化、调度协同的实时响应,进一步提升储能系统的安全性、经济性与可靠性。

getusushu的博客 87

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

npm上传自己封装的插件(vue+vite)

npm上传自己封装的插件(vue+vite)

Dalin0929的博客 1394

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

如何开发一个npm插件,并发布到npm官网

www.npmjs.com 创建一个vue-toast-demo目录 进入目录 cd vue-toast-demo npm初始化  npm init package name: (vue-toast-demo)  // 插件名 version: (1.0.0)                // 插件版本 description: a toast plugin for mobile // ...

xyphf的博客 5416

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何在npm上传自己的vue组件

如何在npm上传自己的vue组件? 首先创建一个vue组件,然后将组件转换为插件,之后修改package.json文件,打包vue插件,登陆npm账号上传发布npm包。

weixin_42367460的博客 656

上传一个自己的npm组件库

上传npm组件库

qq_41662145的博客 1306

Vue封装自定义组件并上传至npm

vue 组件封装 上传npm

m0_67363703的博客 2848

vue自定义插件库及NPM集成实例

文章目录一.如何封装vue插件1.为什么要自定义编写插件2.插件和组件的差别3.构建环境4.插件编码1.msg组件2.自定义button按钮组件3.注册组件5.插件使用6.效果二. 上传npm 一.如何封装vue插件 1.为什么要自定义编写插件 相信做过vue开发的人员,肯定有应用别人的插件在自己的项目中,使用中你会发现没有完全100%符合自己项目场景的插件,可能一个小功能你引入了一堆无用的代码无...

weixin_40073115的博客 1022

npm上发布vue插件

1.初始化项目 vue init webpack-simple XXXXX(此处为插件名) 使用vue创建一个简单的项目,删除src中除了main.js和app.vue外的文件,清空app.vue中无用内容 插件编写完成 可以本地app.vue先运行一下 是否效果正常 再调整 2.更改配置文件 在index.js内 import headerNavbar fr...

weixin_30341745的博客 102

使用npm上传vue组件

1、搭建vue脚手架项目 执行:npm install -g @vue/cli ,安装完成后,执行 vue create 项目名 安装后项目结构如下: 2、本地调试 在App.vue中直接引入本地的组件 3、本地组件测试没问题,改造成vue插件类型的 1、在组件的文件夹下创建一个index.js文件 2、在与src下创建一个index.js的文件 4、修改配置文件 ...

weixin_38681886的博客 372

使用vue在npm上发布自己的ui组件包

使用vue在npm上发布自己的ui组件包 可以提前去npm上搜自己要上传的包名,以后在文件中都统一使用该包名,避免出错。 npm官网 1.安装 vue init webpack-simple jed-nui jed-nui是我之前去npm搜过的包名,没有重复的,于是项目就使用该名称 2.进入项目,编写组件 这里有vue基础的应该都不难 创建文件目录 ├── src │ ├── packag...

weixin_44003190的博客 2043

Vue封装组件并发布到npm仓库

总体说来Vue组件封装发布到npm仓库整体难度不大,主要是理解Vue的install方法以及打包相关知识,其实最重要的还是如何封装一个适用范围广,扩展性高的公用组件。由于这里我们只是测试,所以我不需要更改package.json文件,如果是生产的话,最好加上版本描述和版本号等等,其中name字段便是我们上传到npm仓库后的名称。到这里为止,我们的组件封建基本就完成了,当然组件封装成什么样得看自己得业务需求了,接下来我们就需要将组件进行打包了。到这里我们的组件就封装好了,并且可以直接从npm仓库下载使用。

weixin_45644355的博客 1611

npm发布Vue组件

本文主要介绍如何把一个vue组件通过vite编译发布到NPM平台。

qq_15509267的博客 1634
上一篇: Vue的响应式原理及实现
下一篇: 新项目推到Git远程仓库,遇到问题
JasoncodeQvQ
博客等级 码龄7年 458粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值