npm发布vue3自定义组件库--方法二

npm发布vue3自定义组件库

创建项目

vue create test-ui

自定义组件

创建自定义组件,组件名称根据你的需求来,最好一个组件一个文件夹,下图是我的示例。
src/components
在这里插入图片描述
组件和你写页面一样,所谓组件就是方便实用,不用重复搬动页面到不同的项目,可以直接install到你本地的项目,下图是一个组件示例。
在这里插入图片描述
编写完组件后,你可以在App.vue里测试一下是否可以正常使用
在这里插入图片描述
在这里插入图片描述

发布配置

注册组件

在components目录下新建index.js文件,把你想发布的组件写在里面
在这里插入图片描述

修改vue.config.js文件

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,pages: {index: {// page 的入口entry: 'src/main.js',// 模板来源template: 'public/index.html',// 输出文件名filename: 'index.html'}}
})

修改package.json文件,配置打包命令和组件库信息

打包命令:
–target lib 关键字 指定打包的目录
–name 打包后的文件名字
–dest 打包后的文件夹的名称

"lib": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --target lib --name cjuly-ui --dest lib ./src/components/index.js"

组件信息:

name: 包名,该名不能和已有的名称冲突;
version: 版本号,不能和历史版本号相同;
description: 简介;
main: 入口文件,应指向编译后的包文件;
author:作者;
private:是否私有,需要修改为 false 才能发布到 npm;
license:开源协议。

在这里插入图片描述
注意:切记组件库的包名在npm是没有人发布过的,否则无法发布,可以去npm官网查询是否有人发布过同样的名称。
https://www.npmjs.com/
在这里插入图片描述

设置忽略文件

src目录下创建 .npmignore 文件,设置忽略文件,该文件的语法和 .gitignore 的语法一样,设置发布到 npm 时忽略哪些目录或文件
在这里插入图片描述

.DS_Store
node_modules/
examples/
packages/
public/
vue.config.js
jsconfig.json
babel.config.js
*.map
*.html# local env files
.env.local
.env.*.local# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*

开始打包

执行打包命令

npm run lib

打包完之后项目目录下就会多出一个lib文件夹,存放的是打包后的文件
在这里插入图片描述

注册npm账户

https://www.npmjs.com/signup
在这里插入图片描述
注册完之后在本地登录

# 切换到npm地址
npm config set registry=https://registry.npmjs.org
# 登录,然后输入你的账号,密码,邮箱及验证码
npm login

发布及使用

发布

执行发布命令

npm publish

使用

在你想使用此组件库的项目中安装并引入即可使用

安装组件库,如果组件有更新,重新执行此命令即可

npm install cjuly-ui

main.js中全局引入

# vue2引入
import cjuly-ui from 'cjuly-ui'
Vue.use(cjuly-ui);# vue3引入
import cjuly-ui from 'cjuly-ui'
createApp(App).use(cjuly-ui).mount('#app')

像element一样直接使用即可
在这里插入图片描述

更新组件库

如果你的组件有修改则需要更新到npm
在组件库项目中的打包的目录下,执行以下命令:

npm run lib
npm version patch
npm publish

npm version patch时可能会报错,执行以下命令即可,然后重新执行上方版本更新发布命令

git add .
git commit -m "publish to npm"

在这里插入图片描述
注意:发布完之后最好将npm地址设置回淘宝镜像,等再次发布的时候再切换到npm地址。

# npm发布地址
npm config set registry=https://registry.npmjs.org
# npm淘宝镜像
npm config set registry https://registry.npm.taobao.org/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/141003.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Tomcat多实例+Nginx动静分离、负载均衡

这里写目录标题 Tomcat多实例动静分离、负载均衡一、Tomcat多实例部署1、安装JDK2、安装启动tomcat 二、NginxTomcat负载均衡、动静分离1、Nginx负载均衡实现原理1.1 原理1.2 Nginx配置反向代理的主要参数 2、Nginx动静分离实现原理2.1 原理2.2 Nginx静态处理优势 3、动静分离配…

Visio——绘制倾斜线段

一、形状 -> 图表和数学图形 -> 多行 二、放置多行线,可以发现存在两个折点 三、选择多行线,右键选择删除点,即可得到倾斜线段

山西电力市场日前价格预测【2023-09-25】

日前价格预测 预测说明: 如上图所示,预测明日(2023-09-25)山西电力市场全天平均日前电价为442.30元/MWh。其中,最高日前电价为720.46元/MWh,预计出现在19: 00。最低日前电价为276.06元/MWh,预计…

Vis.js教程(一):基础教程

1、Vis.js是什么 一个动态的、基于浏览器的可视化库。 该库的设计易于使用,能够处理大量动态数据,并能够对数据进行操作和交互。 该库由 DataSet、Timeline、Network、Graph2d 和 Graph3d 组件组成。 Vis.js官网:https://visjs.org/ github…

Linux初识+环境部署

文章目录 版权声明Linux初识Linux的诞生Linux内核Linux发行版 环境部署vmcentosWSL-Ubuntu 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用&…

电脑计算机xinput1_3.dll丢失的解决方法分享,四种修复手段解决问题

日常生活中可能会遇到的问题——xinput1_3.dll丢失的解决方法。我相信,在座的很多朋友都曾遇到过这个问题,那么接下来,我将分享如何解决这个问题的解决方法。 首先,让我们来了解一下xinput1_3.dll文件。xinput1_3.dll是一个动态链…

“构建完善的用户认证与数据交互系统“

目录 引言1.ElementUI完成登录注册1. 登录页面设计与实现2. 注册页面设计与实现 2.axios之get请求3.axios之post请求4.跨域问题的解决方案5.总结 引言 在现代Web应用程序开发中,用户认证和数据交互是至关重要的功能。本文将介绍如何使用ElementUI、axios和解决跨域…

数量关系(刘文超)

解题技巧 代入排除法 数字特性法 整除特性 比例倍数特性(找比例,比例不明显时找等式) 看不懂式子时,把所有的信息像表格一样列出来 看不懂式子时,把所有的信息像表格一样列出来

代码随想录算法训练营 动态规划part06

一、完全背包 卡哥的总结,还挺全代码随想录 (programmercarl.com) 二、零钱兑换 II 518. 零钱兑换 II - 力扣(LeetCode) 被选物品之间不需要满足特定关系,只需要选择物品,以达到「全局最优」或者「特定状态」即可。 …

useCallBack

React.memo 保证了只有props发生变化时,该组件才会重新渲染 (当然组件内部的state 和 context 变化也会导致组件重新渲染),但咱们只要将咱们的子组件包裹,便可以保证Child组件在props不变的情况下,不会重新…

【数据结构】什么是数据结构?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 数据结构的定义 数据结构(Data Structure)是计算机存储,组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合. 这么讲可能有些抽象,放一张图大家可能好理解一点…

动手吧,vue单独使用的复选框

单独使用的复选框可以用在两个状态之间的切换&#xff0c;如是否阅读协议、记住账号等场景。 效果&#xff1a; 1、template部分 <template><label class"v-checkbox-single"><span class"v-checkbox_input" :class"{ disabled }&qu…

CCNP-OSPFv3

现在在企业中&#xff0c;用的IPv4居多&#xff0c;在我们的手机上&#xff0c;数据中心&#xff0c;运营商以及一些大企业用的都是IPv6&#xff1b; 为啥用IPv6啊&#xff0c;因为IPv4地址不够用&#xff0c;IPv4地址只有32bit&#xff0c;而IPv6足足有128bit&#xff1b; 那…

帆软FineReport决策报表之页面布局

最近在用帆软决策报表绘制首页大屏&#xff0c;记录使用过程&#xff0c;方便查看。 版本&#xff1a;FineReport10.0 第一步、页面布局 页面布局其实就是组件的排列组合&#xff0c;决策报表主区域body有两种布局方式&#xff1a;自适应布局和绝对布局。 1&#xff09;自适应…

java面试题-学成在线项目

1、详细说说你的项目吧 从以下几个方面进行项目介绍&#xff1a; 1、项目的背景&#xff0c;包括&#xff1a;是自研还是外包、什么业务、服务的客户群是谁、谁去运营等问题。 2、项目的业务流程 3、项目的功能模块 4、项目的技术架构 5、个人工作职责 6、个人负责模块的详细说…

使用华为eNSP组网试验⑴-通过Vlan进行网络设备间通讯

在2019年学习网络的时候是从思科产品开始学的&#xff0c;那个时候接触了思科的6506、4506、3750、3550、2950&#xff0c;因为网络设备多&#xff0c;基本上是在多余的设备上直接操作&#xff0c;掌握后再上现场设备中去操作。当时使用了思科的模拟器CISCO Packet Tracer&…

华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 STREAM 深度测评华为云云耀云服务器L实例的内存性能

本文收录在专栏&#xff1a;#云计算入门与实践 - 华为云 专栏中&#xff0c;本系列博文还在更新中 相关华为云云耀云服务器L实例评测文章列表如下&#xff1a; 华为云云耀云服务器L实例评测 | 从零开始&#xff1a;云耀云服务器L实例的全面使用解析指南华为云云耀云服务器L实…

贴片电容耐压值选取和特性(包含实际电路和PCB)

一、一般电容的特性 ①容值大的电容&#xff0c;一般通低频率&#xff1b;  ②容值小的电容&#xff0c;一般通高频率。   注&#xff1a;详细请看这位博主的篇文章&#xff1a; 大电容为什么虑低频小电容为什么又虑高频?(个人整理) 二、贴片电容的耐压选取 ①贴片电容有2…

关于计算机找不到d3dx9_43.dll,无法继续执行代码修复方法

d3dx9_43.dll是一个动态链接库文件&#xff0c;它是DirectX的一个组件&#xff0c;主要用于处理游戏中的图形、声音等多媒体元素。当这个文件丢失时&#xff0c;可能会导致以下问题&#xff1a; 1. 游戏无法正常运行&#xff1a;由于d3dx9_43.dll负责处理游戏中的多媒体元素&a…

《Python趣味工具》——ppt的操作(1)

前面我们学习了如何利用turtle模块制作emoji&#xff0c;今天来看看PPT的相关操作&#xff1a; 文章目录 一、PPT的基础结构&#xff1a;二、PPT的相关操作&#xff1a;1. 导入pptx模块2. ppt的基本操作&#xff1a; 三、总结&#xff1a;四、 完整源码&#xff1a; 小L想要把 …