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

从零发布一个 Vue 3 Button 组件到 npm(基于 Vite)

整理不易,如果本文对你有帮助,欢迎点个【赞 👍】+【收藏 ⭐】+【关注 🧡】

🚀从零发布一个 Vue 3 Button 组件到 npm(基于 Vite)

今天我们来实战一个完整流程:如何将一个 Vue 3 Button 组件打包并发布到 npm,这样你就可以在任意 Vue 项目中通过 npm install 引用它,完全开源复用,流程简单明了,适合初学者和想封装自己 UI 库的朋友。


🧱一、创建项目并初始化

① 创建项目目录

mkdir my-vue-button
cd my-vue-button

② 初始化 package.json

npm init -y
# 或使用 pnpm:
pnpm init -y

③ 安装 Vue 3 和 Vite

npm install vue@next
npm install vite @vitejs/plugin-vue --save-dev
# 或使用 pnpm:
pnpm add vue@next
pnpm add vite @vitejs/plugin-vue --save-dev

🧩二、编写 Button 组件

① 创建组件文件夹

mkdir src
touch src/Button.vue

② 编写 src/Button.vue

<template><button :class="['my-button', { 'primary': type === 'primary' }]"@click="onClick"><slot></slot></button>
</template><script setup>
defineProps({type: {type: String,default: 'default', // 'default' | 'primary'},onClick: {type: Function,default: () => {},},
})
</script><style scoped>
.my-button {padding: 8px 16px;border: none;border-radius: 4px;background: #f0f0f0;cursor: pointer;
}
.primary {background: #409eff;color: white;
}
</style>

💡 功能说明:

  • ✅ 支持 type 属性(defaultprimary
  • ✅ 支持 <slot> 自定义内容
  • ✅ 支持 onClick 点击事件

⚙️三、配置构建工具(Vite)

① 创建 vite.config.js

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';export default defineConfig({plugins: [vue()],build: {lib: {entry: 'src/Button.vue',           // 入口文件name: 'MyButton',                  // 全局变量名(UMD 格式使用)formats: ['es', 'umd'],            // 构建格式:ESM 和 UMDfileName: (format) => `button.${format}.js`, // 输出文件名},rollupOptions: {external: ['vue'],                 // 排除 Vue(宿主项目提供)output: {globals: {vue: 'Vue',                    // 映射为全局变量 Vue},},},},
});

② 修改 package.json 构建脚本

"scripts": {"build": "vite build","prepublishOnly": "npm run build"
}

③ 运行构建测试

npm run build

✅ 构建成功后将在 dist/ 生成以下文件:

  • button.es.js(ES Module 格式)
  • button.umd.js(兼容老项目)

🧾四、配置 npm 发布信息

修改 package.json,确保包含以下字段:

{"name": "@your-username/my-vue-button","version": "1.0.0","description": "A simple Vue 3 Button component","main": "dist/button.es.js","module": "dist/button.es.js","unpkg": "dist/button.umd.js","files": ["dist"],"peerDependencies": {"vue": "^3.0.0"},"devDependencies": {"vite": "^4.0.0","@vitejs/plugin-vue": "^4.0.0"}
}

🔍 关键点说明:

字段说明
name推荐使用 @作用域/组件名 避免命名冲突
peerDependencies声明使用 Vue,但不重复打包
files指定只发布 dist 构建产物

🚀五、发布到 npm

① 登录 npm

npm login
# 或:
pnpm login

📥 输入用户名、密码和邮箱即可登录。


② 发布组件包

npm publish
# 或:
pnpm publish

📌 注意事项:

  • 首次发布版本建议从 1.0.0 开始
  • 若提示包名已存在,可改用别的作用域或名称

🧪六、测试使用你的组件

① 在其他项目中安装

npm install @your-username/my-vue-button
# 或:
pnpm add @your-username/my-vue-button

② 在 Vue 项目中使用

<template><MyButton type="primary" @click="handleClick">Click Me</MyButton>
</template><script setup>
import MyButton from '@your-username/my-vue-button';const handleClick = () => {alert('Button clicked!');
};
</script>

🔁七、更新组件版本

每次发布新版本时,请修改版本号并重新构建:

# 修改 package.json 中的 version(如 1.0.1)npm run build
npm publish

📦完整流程总结

步骤操作
1️⃣创建项目并初始化 package.json
2️⃣编写 Button.vue 组件
3️⃣配置 vite.config.js 构建工具
4️⃣编辑构建脚本和发布信息
5️⃣登录并发布到 npm
6️⃣测试在其他项目中安装使用
7️⃣更新版本并发布

👏 到这里,你就完成了从 0 到发布 Vue 组件到 npm 的完整流程!是不是很简单?如果你还想继续发布更多组件,甚至封装成一个组件库,也可以按照这个流程反复使用!

📮有问题欢迎评论提问,我会尽量解答!

相关文章:

  • 更改安卓虚拟机屏幕大小
  • 计算机基础知识(第四篇)
  • 2025年上海市“星光计划”第十一届职业院校技能大赛 网络安全赛项技能操作模块样题
  • 农田水利如何「聪明」起来?Modbus转Ethernet IP破解设备互联
  • 洛谷题目:P2761 软件补丁问题 (本题简单)
  • linux下覆盖率测试总结
  • App使用webview套壳引入h5(二)—— app内访问h5,顶部被手机顶部菜单遮挡问题,保留顶部安全距离
  • 从Copilot到Agent,AI Coding是如何进化的?
  • [特殊字符] 一文了解目前主流的 Cursor AI 免费续杯工具!
  • 使用logrotate切割nginx日志
  • NX985NX988美光固态闪存NY103NY106
  • 【论文解读】MemGPT: 迈向为操作系统的LLM
  • 【如何做好应用架构?】
  • 基于WSL搭建Ubnutu 20.04.6 LTS(二)-部署Docker环境
  • 【强化学习】——03 Model-Free RL
  • 【前端】js如何处理计算精度问题
  • 并发编程 - go版
  • Go中的协程并发和并发panic处理
  • Ubuntu ssh 永久添加私钥
  • TripGenie:畅游济南旅行规划助手:个人工作纪实(九)
  • 酒店做网站/免费技能培训网
  • 做微信公众号的网站有哪些内容/百度怎么推广自己的网站
  • 株洲做网站公司/武汉seo优
  • 拼车网站的建设雨实现/企业网站模板 免费
  • 网站制作学校要的/网络营销方法有哪些
  • 查看服务器上的网站/网站seo哪家做的好