当前位置: 首页 > news >正文

创建vue插件,发布npm

开发步骤:1.创建一个vue项目,2.开发一个组件。 3.注册成插件。 4.vite和package.json配置。5.发布到npm

1.创建一个vue项目

npm create vue@latest

  生成了vue项目之后,得到了以下结构。

 在src下创建个plugins目录。用于存放开发的插件。

2.开发一个组件

(1)现在可以开发插件了。在plugins目录下创建一个vue组件。TestButton.vue如下:

<template><div><button>插件中的按钮</button></div>
</template><script lang='ts' setup ><script>

3.注册成插件

在plugins目录下创建一个install.ts。用于注册组件。注册组件需要导出个install方法。将组件注册到app中。具体可以参照vuejs官网。

import TestButton from "./TestButton.vue"export default {install: (app:any){app.compontent(TestButton.name,TestButton)}
}

4.vite和package.json配置

(1)配置vite。指定打包的入口文件,以及输出。


import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'// https://vite.dev/config/
export default defineConfig({// 用于构建 build:{lib:{// 构建的入口。这里需要设置为刚才创建的plugins下的install.tsentry:"./src/plugins/install.ts",name:"TestUI",fileName: (format) => `TestUI.${format}.js`, // 输出文件名// 使用的打包模式formats:["umd"],},rollupOptions:{// 将 Vue 标记为外部依赖external:['vue'], output:{globals:{vue:"Vue" // 在 UMD 构建中,Vue 被认为是全局变量}}}},plugins: [vue(),vueDevTools(),],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))},},
})

(2)进行打包 

npm run build

(3)配置package.json。

{"name": "TestUI","version": "1.0.25","private": false,"type": "module",// 入口文件,设置为上一步打包完成后生成的js文件"main": "./dist/ysjui.umd.cjs", "module": "./dist/ysjui.umd.cjs",// 指定dist和lib发布到npm包中"files": ["dist","lib"],"author": {"name": "xxx"},// 其他的配置项...
}

5.发布至npm

npm publish

http://www.lryc.cn/news/485594.html

相关文章:

  • 【Android Compose原创组件】可拖动滚动条的完美实现
  • 【模块一】kubernetes容器编排进阶实战之资源管理核心概念
  • 用Python设置PowerPoint幻灯片背景
  • Restful API接⼝简介及为什么要进⾏接⼝压测
  • [pyspark] pyspark中如何修改列名字
  • 掌握 Spring Boot 的最佳方法 – 学习路线图
  • element-ui】使用el_upload上传文件无法动态修改action
  • 如何查看电脑支持的最大内存
  • 24 年第十届数维杯国际数模竞赛赛题浅析
  • Dubbo 3.x源码(25)—Dubbo服务引用源码(8)notify订阅服务通知更新
  • 排序算法 -计数排序
  • Java学习,基本数据类型
  • 单片机GPIO中断+定时器 软件串口通信
  • elementui el-table中给表头 el-table-column 加一个鼠标移入提示说明
  • NVR小程序接入平台/设备EasyNVR多个NVR同时管理设备接入:海康NVR 3.0提示不在线如何处理?
  • datawhale11月组队学习 模型压缩技术2:PyTorch模型剪枝教程
  • SOL链上Meme生态的崛起与未来#Dapp开发#链游#交易所#公链搭建
  • 部署Apache Doris
  • ElasticSearch-全文检索(一)基本介绍
  • paramiko 库实现的暴力破解 SSH 密码
  • Python 操作 Elasticsearch 全指南:从连接到数据查询与处理
  • Jarvis March算法详解及Python实现(附设计模式案例)
  • AIGC中的文本风格迁移:基于深度学习的实现
  • 丹摩征文活动 |【前端开发】HTML+CSS+JavaScript前端三剑客的基础知识体系了解
  • 响应“一机两用”政策 落实政务外网安全
  • 通过JS删除当前域名中的全部COOKIE教程
  • Flutter:Widget生命周期
  • Flutter:Dio下载文件到本地
  • [⑧5G NR]: PBCH payload生成
  • 查看解决端口占用,以及docker解决端口占用的原理