vue npm 发布自己的组件到npm并使用

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

我们的目标是写一个组件上传到npm,然后可以通过 cnpm install --save kyswitch 的方式去依赖这个组件,像element-ui一样的去使用

import kyswitch from "kyswitch"
import "kyswitch/lib/kyui.css"

Vue.use(kyswitch);

//页面
<ky-switch></ky-switch>

OK 开始吧!

1、首先创建一个vue项目,我用的是脚手架vuecli4.0

创建完成之后 我们在根目录建立package文件夹,用来存放我们的组建。

自定义组建大家应该都写过,挂载到全局的组件。

2、创建组建文件夹switch

完整的目录结构

mswitch.vue中的内容就是一个简单的组件如下图: 

下面看index.js中的内容,将刚才的组建导入,定义install方法,注册到vue实例上。注意Switch.name,这里是我们使用组件时的标签<ky-switch></ky-switch>。

之后将讲一下为什么要用install方法。

import Switch from "./src/mswitch";
Switch.install = function(Vue) {
    Vue.component(Switch.name, Switch);
};
export default Switch;

OK 创建好了之后 我们可以在app.vue中试一下组建好不好用。

main.js中将刚才写好的switch组建引入

import kyswitch from "../package/switch/index.js"

Vue.use(kyswitch);

app.vue中

<ky-switch></ky-switch>

写的没问题的话页面会出现刚才实现的组建。证明组建写的没问题。

下一步我们将自己的组件打包并发布到npm上面

首先我们在之前创建好的package文件夹下创建统一入口 index.js,如果组建多的话,这里是统一入口,内容如下:

// 导入开关选择组件
import kyswitch from './switch'
 
// 存储组件列表
const components = [
    kyswitch
]
// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
const install = function (Vue) {
    // 判断是否安装
    if (install.installed) return
    // 遍历注册全局组件
    components.map(component => Vue.component(component.name, component))
}
// 判断是否是直接引入文件
if (typeof window !== 'undefined' && window.Vue) {
    install(window.Vue)
}

export default {
    // 导出的对象必须具有 install,才能被 Vue.use() 方法安装
    install,
    // 以下是具体的组件列表
    kyswitch
}

配置完成之后,接下来打包,之前打包时命令为 npm run build,这是对整个项目打包,我们现在要打包一个库,所以用到了vue的 构建目标,官方文档看这里vue构建目标。

下面是官方文档的介绍,好照着撸就行。

打开package.json文件,增加打包命令 lib

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "lib": "vue-cli-service build --target lib --name kyui --dest lib package/index.js"
  },

--name 是输出的文件名字 --dest是打包的文件夹名字  入口则是上面提到的 package下面的index.js

在终端输入 npm run lib    得到如下结果

我们可以测试一下打包出来的都东西能不能用,同样在main.js中引入 vue.use( ) ;注意 这里需要引入css,因为打包时 css是抽离出来的。

import kyswitch from "../lib/kyui.common.js"
import "../lib/kyui.css"

Vue.use(kyswitch);

app.vue中
<ky-switch />

正常的话页面会展示咱们的组件。现在是不是有点element-ui的使用样子了。但是element的引入方式是  import kyswitch from "kyswitch "  这个怎么做到呢?  接下来咱们继续配置package.json。


  "name": "kyswitch",
  "version": "1.0.4",
  "private": false,
  "author": "Mr.xu",
  "repository": "",
  "main": "lib/kyui.common.js",
  "style": "lib/kyui.css",
  "keywords": [
    "vue开关",
    "switch"
  ],
  "files": [
    "lib",
    "package"
  ]

需要有几点注意:

 name 是将来npm packages 的包名字,所以尽量取成自己想要的。

version 当前库的版本 每次更新npm库版本的时候需要修改

private 这个是私有还是公有,我们在npm官方注册一个账号,当创建一个仓库的时候 选择免费的也就是开源的,私有的收费7$。所以直接false就行。

repository 这个是源码地址,一般是个git地址。

main  重要的来了,main是库的入口文件。为什么我们能在 main.js中直接 这么引用呢,就是因为有 main这个字段。否则我们得 import kyswitch from "kyswitch/lib/kyui.common.js" 这样引入。

import kyswitch from "kyswitch"
import "kyswitch/lib/kyui.css"

style  样式的入口文件。

keywords 这个是关键字 方便查找我们的组建。

files 上传哪些文件到npm的白名单。

我们发布组建的时候只希望发布lib package 文件夹其他的不需要,这怎么设置呢,有两种方式,一个是package.json配置白名单 只上传哪些(上面有提到),第二种在根目录建立文件夹.npmignore,这个叫黑名单是告诉哪些不要上传。内容如下: 这个叫黑名单

.DS_Store
node_modules/
examples/
packages/
public/
src/
vue.config.js
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的账号,去注册一个账号,之后再项目根目录终端:注意如果你是注册了淘宝镜像,请先切回源镜像npm :npm config set registry https://registry.npmjs.org

npm login
username:
password:
email:

输入完成之后  检查一下有没有登录成功。终端输入下面命令 会返回你的账号,说明登录成功。

npm whoami

执行命令,将组件发布到npm

npm publish

出现这个说明发布成功了,等2-3分钟,在npm官网刷新一下看看能不能看到自己的库

上传成功后如何在别的项目中使用呢?

打开终端 输入命令 cnpm install --save kyswitch 依赖库,然后按着咱们最开始的目标来使用就可以了,大家在发布过程中有什么问题可以私聊我。

 

 

 

自己开发的vue组件打包并发布到npm,并在项目中使用 阅读详情

相关推荐

如何把本地的vue项目写的组件上传到npm

平常使用Vue开发时,一个项目中多个地方需要用到的相同组件通常我们会封装为一个公共组件,但是如果项目不同我们也需要这个组件,那就需要复制一份公共组件代码到新项目,一个还好,如果是多个组件,这样就稍显麻烦了。所以我们可以将封装好的组件打包发布至npm,就可以像element ui ant-design-vue这些ui组件库一样通过npm命令下载使用了。

weixin_44875212的博客 2128

全面指南:如何发布自己的npm插件包

本文全面介绍了从零开始创建、配置、测试到发布npm插件包的详细步骤,包括项目初始化、代码编写、配置文件设置、本地测试、打包、发布及后续维护。旨在帮助开发者高效地将自己的组件或插件分享到npm社区。

全世界的博客 5029

发布vue3组件到npm

当你开发Vue 3应用程序时,有时你可能会需要将自己创建的组件发布到npm上,以便其他开发者可以轻松地在他们的项目中使用这些组件。本文将指导你如何将Vue 3组件发布到npm。

每天都要努力学习哦~~ 3527

npm 上传发布自定义组件以及使用详细流程(Vue包含)

Vue 自定义全局UI组件Vue 全局导入 JS 文件npm 删除(废弃)发布包或版本前端开发经常需要使用到 npm 安装第三方库,那么如何将自己写的库上传到 npm 进行使用呢?如果在项目中使用到依赖包,可以先了解一下npm 命令使用介绍以及区别,里面有对安装依赖包的详细介绍UI。

卡尔特斯 1万+

vue封装组件,类似elementUI组件库打包发布到npm上

封装vue组件库的两种方法和形式: 一:是建立一个webpack-simple 项目 二:是在通过vue-cli脚手架建立webpack vue项目,这种项目有点冗余,可是我们对这种项目最熟悉 下面分别介绍两种用法: 一: 1.首先先建立一个vue项目: 通过vue init webpack-simple,新建项目目录如下: 箭头指的是在项目打包后产生的文件(打包命令npm ru...

cscscssjsp的博客 8797

vue2 编写自己的组件库,并发布到npm

vue2编写自己的组件库,并发布到npm

qq_42859450的博客 2238

如何制作并发布一个vue的组件的npm包

前提:1.会vue基础,以及vue的组件(官网:https://cn.vuejs.org/v2/guide/components.html)相关的基础。 因为本文主要是讲如何把一个vue组件做成npm包并发布。 分为2大步骤: 一.按照相应格式写我们的vue代码(就如同写一个jquery插件时、有其固定的格式一样)。 二.发布到npm上的流程 一、书写一个vue组件 不用脚...

hamupp的博客 2万+

从零到一:基于Rocky Linux 9的Kubernetes高可用集群部署实战

本文提供了一份基于Rocky Linux 9操作系统,从零开始部署Kubernetes高可用集群的完整实战指南。详细讲解了包括系统初始化、容器运行时配置、使用kubeadm工具进行集群初始化、节点加入以及Calico网络插件安装在内的核心步骤,并针对国内网络环境提供了镜像加速等优化方案,旨在帮助读者构建一个稳定可靠的生产级K8s环境。

weixin_29197835的博客 139

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

在Vue框架的开发实践中,组件封装是一项核心技能,它极大地促进了代码的复用性和可维护性。通过封装组件,我们能够创建出高度模块化的UI元素,这些元素不仅能在项目内部灵活应用,还能通过npm这样的包管理工具分享给更广泛的开发者群体,如iview、element-ui等流行的Vue UI组件库正是这一理念的体现。然而,每个企业的业务逻辑和界面设计都有其独特性,这意味着即便有现成的组件库,开发人员也往往需要根据具体需求定制或封装新的组件。这不仅增加了维护的复杂度,还可能导致代码在不同项目中失去同步。

qq_63497385的博客 2594

CocosCreator3.8实战指南:动态字体与位图字体性能优化技巧

本文深入解析CocosCreator3.8中系统字体、动态字体(TTF)与位图字体(FNT)的核心差异与性能表现。针对动态字体运行时解析开销大、内存占用高的痛点,提供了字体子集化、共享资源等优化技巧;同时详细介绍了位图字体制作流程及其在渲染速度、内存可控性上的绝对优势,并给出跨平台场景下的字体选型与优化策略,帮助开发者有效提升游戏性能。

weixin_29006701的博客 563

使用 Simulink + Simscape Electrical 对基于VSG控制的背靠背变流器整流侧进行建模与仿真

本文介绍了基于Simulink的直驱风电系统背靠背变流器整流侧虚拟同步发电机(VSG)建模方法。首先阐述了直驱风电系统结构和VSG控制的作用,然后详细指导了模型搭建过程:从创建项目、添加PMSG和变流器模块,到搭建主电路拓扑和实现VSG控制逻辑。重点说明了VSG控制器如何模拟传统同步发电机的特性,并提供了仿真设置和结果分析方法。该模型可用于研究风电系统在不同工况下的响应特性,为新能源发电系统设计提供重要参考。

amy_mhd的博客 180

Vue封装组件并发布npm

前言 在使用vue进行日常开发的时候,组件的封装是一个很常规的操作,也可以从npm仓库下载别人封装好的组件来使用,比如iview,element ui等…但每个项目的应用场景不同,所以我们有时也需要自己封装组件。而如果在开发中换了项目,那么就只能复制代码过去,略显麻烦,这个时候呢,可以将封装好的组件上传到npm仓库,需要使用时就可以直接通过npm指令下载,非常方便。 1.环境准备 因为我们封装的是Vue组件,所以直接在脚手架中封装即可。 //创建项目 因为我们只需封装组件 所以 Router St

优快云_shipingan的博客 2782

26、机器学习模型的成员推断攻击与隐私保护

本文探讨了机器学习模型面临的成员推断攻击及其对隐私的潜在威胁。通过使用CIFAR-10数据集,详细介绍了如何利用影子模型和攻击模型推断特定数据点是否属于模型的训练集。实验表明,即使无法直接访问模型参数和原始数据,攻击者仍能以高于随机猜测的概率进行推断,从而构成隐私风险。此外,文章还分析了实验的关键技术点,并提出了多种隐私保护建议,包括数据脱敏、差分隐私、模型正则化等方法。

coffee的博客 123

如何发布自己的npm包(vue组件)

如何在上发布自己的第一个组件库,是每一名前端开发人员必经的进阶之路,本文将结合作者的实践项目,为各位读者详细讲解所有的操作步骤,相信你在阅读本文后,就能立马动手。由于本文的主要目的是讲解如何创建组件库并发布到,因此对于组件的创建会一笔带过。打开在项目中输入一下命令初始化一个的项目,名称自定义 在src的同级目录下新建一个名称为的组件库,如图所示 是新增的一个目录,默认不被处理,所以需要在里面配置组件库,以便编译,没有的话,就在目录下新建一个。并在填入一下内容 3.编辑自定义组件库 以为例子,你们可以依照自己

m0_48230043的博客 3512

【YOLOv12改进trick】高效多尺度卷积注意力EMCAD_Block模块引入YOLOv12,实现涨点和效率提升,含创新点Python代码

EMCAD引入YOLOv12模块,实现高效多尺度注意力模块引入到YOLOv12中的快速涨点及效率提升

向上生长的程序媛的博客 852

NVIDIA Isaac Sim 入门教程 - 运动生成控制器(Motion Generators)

机器人任务通常在任务空间中根据所需的末端执行器轨迹进行定义,而控制动作则在关节空间中执行。这自然会产生关节空间和任务空间(操作空间)控制方法。然而,要利用运动控制成功执行交互任务,往往需要对机械臂及其环境都建立精确的模型。虽然可以知道足够精确的机械臂模型,但很难获得详细的环境描述 [SSVO09]。可以通过在交互过程中引入顺应行为来克服这种不匹配造成的规划错误。虽然顺应性可以通过机器人的结构(如弹性致动器、软机械臂)被动实现,但我们对侧重于主动交互控制的控制器设计更感兴趣。这些设计大致分为注释。

2506_90492529的博客 1578

vue3.0组件开发并发布npm

本文基于vue3.0进行组件开发并发布。 1 初始化项目 cmd 中 vue create plugin-test 进行创建 2 组件开发 创建目录plugin用户存放组件,新建PluginTest文件用于存放PluginTest插件,文件夹中包含两个文件: index.js // 为组件提供 install 安装方法,供按需引入 import PluginTest from './Plugin...

Chameleon_zhao的博客 6319

【2025年阿里云暑期实习(算法岗)-4月24日-第一题(100分)- 小红听歌】(题目+思路+Java&C++&Python解析+在线测试)

小红正在听歌,屏幕上同时展示着歌词和对应的播放进度条。s1t101ti​0iti​1i小红每次可以操作快进或回退一个歌词(即将播放指针向右或向左移动一个位置),数据初始时和操作过程均保证已经播放的歌词是s的一个前缀(可为空串)。她的目标是:以尽可能少的操作次数,使得字符串s中未播放状态的歌词是"幸运串"。请你计算,为了达到该目标,至少需要多少次操作?(数据保证可以在有限次内完成操作目标)【幸运串】每种字母出现的次数为指定的次数,可为空串,具体可查看输入描述。

m0_73659489的博客 114

npm发布Vue组件

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

qq_15509267的博客 1634

MATLAB计算各种复合干热指数,如SDHI、DHMI等

MATLAB编程实现各种复合干热指数

WW、forever的博客 5081

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Vue2封装一个全局通知组件并发布到NPM

学完本篇文章,你将学会如何封装一个全局消息组件,并学会发布你编写的组件到互联网,这是很有`成就感`的事情哦,快学起来吧!

很高兴你能看到这里 4274

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

将vue组件发布成npm包

将vue组件发布成npm包

Yu_Jian_Qt的博客 2962

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: pm2常用命令
下一篇: java Spring boot web 服务项目搭建及简单的接口实现及简单的数据库查询
攻城狮狮
博客等级 码龄9年 727粉丝 78原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值