向npm发布自己写的vue组件,使用vite创建项目

embedded/2024/9/25 4:11:47/

npm发布自己写的vue组件,使用vite创建项目

创建项目

pnpm create vite

输入项目名称
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由于我的组件是基于 ant-design-vue和vue的,需要解析.vue文件,我又安装了下面4个。

然后执行 pnpm i安装依赖

vite.config.ts

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
export default defineConfig({plugins: [vue(),],build: {lib: {entry: './lib/main.ts',name: 'aixiaodou-ui', // 需要和你的项目名称一致fileName: 'aixiaodou-ui'// 需要和你的项目名称一致},rollupOptions:{external:['vue'],output:{format:'umd',exports:'named',globals:{vue:'Vue'},},},minify:'terser',terserOptions: {compress: {drop_console: true, // 生产环境下去除consoledrop_debugger: true, // 生产环境下去除debugger}}}
})

package.json

{"name": "aixiaodou-ui","private": false, // 设置为false"version": "0.0.5", // 版本号,每次推送需加1,不能和已推送的相同"type": "module","files": [ // 设置要推送的文件,我把源码lib也推送了"dist","index.d.ts","lib"],"main": "./dist/aixiaodou-ui.umd.cjs", // 需要和你的项目名称一致"module": "./dist/aixiaodou-ui.js", // 需要和你的项目名称一致"types": "./index.d.ts","exports": {"types": "./index.d.ts","import": "./dist/aixiaodou-ui.js", // 需要和你的项目名称一致"require": "./dist/aixiaodou-ui.umd.cjs" // 需要和你的项目名称一致},"scripts": {"dev": "vite","build": "tsc && vite build"},"devDependencies": {"@vitejs/plugin-vue": "^5.0.4","terser": "^5.31.0","typescript": "^5.4.5","vite": "^5.2.10"},"dependencies": {"@ant-design/icons-vue": "^7.0.1","ant-design-vue": "^4.2.1","vue": "^3.4.27"}
}

修改 index.d.ts

利于编译器提示
在这里插入图片描述

打包构建

构建成功后会生成dist目录

pnpm build

npm_99">登录npm

登录注册账号 https://www.npmjs.com/

npm_102">设置 npm

也可以使用nrm切换

npm config set registry=https://registry.npmjs.org

npm_107">登录npm

npm login

根据提示,输入用户名,输入密码 进行登录

发布

npm publish

发布成功后可以在npm网站内看到
在这里插入图片描述

发布成功后就可以使用npm命令进行安装使用了
npm i -S aixiaodou-ui


http://www.ppmy.cn/embedded/44050.html

相关文章

专业的力量-在成为专家的道路上前进

专业的力量-在成为专家的道路上前进 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 现在稀缺的已不再是信息资源,而是运用信息的能力。过去…

微信小程序路由跳转

1. wx.navigateTo 作用:保留当前页面,跳转到应用内的某个页面。特点:跳转后目标页面的生命周期函数 onLoad 和 onShow 会被触发。使用场景:一般用于跳转到应用内的其他页面,保留当前页面的状态,例如从文章…

渗透测试工具Cobalt strike-2.CS基础使用

三、结合metasploit,反弹shell 在kali中开启使用命令开启metasploit msfconsole ┌──(root㉿oldboy)-[~] └─# msfconsole --- msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp --- msf6 exploit(multi/handler) > show …

vue3学习(四)

前言 接上篇学习笔记&#xff0c;分享3个内置组件&#xff1a;动态组件、缓存组件、分发组件基本用法。大家一起通过code的示例&#xff0c;从现象理解,注意再次理解生命周期。 一、code示例 组件A&#xff1a;CompA <script setup> import {onMounted, onUnmounted} f…

后端技术栈都有哪些

在后端技术领域&#xff0c;有很多不同的技术栈可供选择&#xff0c;这取决于项目的具体需求、团队的技能和经验以及所使用的框架或库的流行程度。以下是一些常见的后端技术栈的示例&#xff1a; Node.js&#xff1a; 框架&#xff1a;Express.js, Koa.js, NestJS, Hapi.js数据…

spring session+redis存储session,实现用户登录功能,并在拦截器里面判断用户session是否过期,过期就跳转到登录页面

在Spring应用中&#xff0c;使用Redis存储Session是一种常见的方式&#xff0c;可以实现分布式环境下的Session管理。以下是实现用户登录功能&#xff0c;并在拦截器中判断Session是否过期并跳转到登录页面的基本步骤&#xff1a; 添加依赖&#xff1a;首先&#xff0c;确保你的…

kotlin基础之泛型和委托

Kotlin泛型的概念及使用 泛型概念 在Kotlin中&#xff0c;泛型&#xff08;Generics&#xff09;是一种允许在类、接口和方法中使用类型参数的技术。这些类型参数在实例化类、实现接口或调用方法时会被具体的类型所替代。泛型的主要目的是提高代码的复用性、类型安全性和可读…

4月平板电脑行业线上销售数据分析

由于全球科技发展趋势&#xff0c;如AI技术的应用&#xff0c;以及厂商新品发布计划&#xff1b;同时&#xff0c;平板电脑作为个人电脑的延伸产品&#xff0c;其便携性和生产力相较于手机具有明显优势&#xff0c;这也为行业的进一步发展提供了动力。 据鲸参谋数据统计&#…