npm发布自己的安装包流程,超级详细,傻瓜式教学

本文详细介绍了如何发布和使用npm包,包括创建项目、设置目录结构、编写组件及暴露、配置vue.config.js、打包、npm注册及登录、发布包、处理常见错误等步骤。特别强调了组件的全局与局部暴露、main关键字的重要性以及如何解决网络和版本冲突问题。此外,还展示了如何在新项目中引入并使用发布的组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

npm包发布流程简介
1.创建项目
2.完整目录结构
在这里插入图片描述

src下的plugins文件夹作为我对外暴露的组件文件夹
下面以mapcontainer组件为例,向大家展示全局暴露跟局部暴露
1,mapcontainer文件夹下创建组件map-container.vue和用于单独暴露组件的index.ts
2,map-container.vue组件中的name属性一定要填写,这个name就是我们对外暴露后,所使用的组件名
在这里插入图片描述

index.ts文件内容:
为组件提供 install 方法,供组件对外按需引入,将组件的name属性暴露出去,当作使用时组件的入口
在这里插入图片描述

注:这个单独暴露组件的index.ts,意思是如果这个工程值封装一个组件使用的话,就用这个index.ts文件暴露install即可了。

Plugins文件夹下新建index.ts文件,为了统一导出所有组件。之前的 index.ts 只是安装单个组件,而现在这个 index.ts 是循环安装所有组件
在这里插入图片描述

安装完成之后尝试在本地使用组件,在main.ts中全局引入,直接引入文件夹即可,程序会自动向下一级找index.ts
在这里插入图片描述

在App页面使用组件,这个标签与组件文件中的map-container.vue里的name保持一致
在这里插入图片描述

经过测试没有问题后我们就可以进行打包流程
Package.json
库打包模式:在package.json文件中的"scripts"字段里添加以下内容:(路径不要写错)
name:包名
version:包的版本号,每次发包这个版本号都要改 (版本号与已发布的版本冲突发布时会报错)
description:包的描述 private:是否私有,false(若为true发包的时候会报错)
author:作者
keywords:关键字,供npm上模糊搜索到包
lib:
在vue-cli中可以通过以下命令将一个单独的入口打包成库
// target: 默认为构建应用,改为 lib 即可启用构建库模式
// name: 输出文件名
// dest: 输出目录,默认为 dist,这里我们改为 lib
// entry: 入口文件路径
vue-cli-service build --target lib --name lib [entry]
main:(若忘记写main,使用依赖时会找不到入口文件)
‘npm run lib’ 后封装好的js文件存放路径

过滤:
根目录下.gitignore文件(将一些不必要打包的文件过滤掉,只暴露plugins中的组件)
.DS_Store
node_modules
/dist

local env files

.env.local
.env.*.local

Log files

npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

Editor directories and files

.idea
.vscode
*.suo
.ntvs
*.njsproj
*.sln
*.sw?
src/
plugins/
public/
vue.config.js
babel.config.js
*.map
*.html

终端执行npm run lib进行打包
以上就是我们的项目文件为发布需要准备的内容,接下来进行npm注册
Npm注册:
在npm官网进行傻瓜式注册并验证邮箱https://www.npmjs.com/
注册后在终端执行npm login 登录
在这里插入图片描述

输入npm punlish 发布包,出现包名加版本号,即发布成功
在npm官网个人中心package中则可以看到自己发布的安装包
在这里插入图片描述

包的使用
新建一个项目专门用来测试自己发布的包是否好用
1.在新建项目的终端输入 npm i ‘包名’ --save引入依赖
2.在main.js中全局引入依赖
在这里插入图片描述

在APP页面使用依赖(‘map-container’则为我们封装依赖时name属性,全局引入依赖后直接调用即可)
在这里插入图片描述

如何使用依赖中的方法(基于业务不同,使用方法不同)
我是通过ref获取dom节点进行方法调用
在这里插入图片描述

到此我们发布以及使用流程全部结束
常见错误
1.执行npm login时提示:
request to https://registry.npmjs.org/-/v1/login failed
问题原因:当前网络连接不上npm镜像服务器
解决办法:
1.尝试使用cnpm login
2.手机开热点登陆

2.执行npm publish时提示:
403 Forbidden - PUT https://registry.npmjs.org/gd_ui_cj - You cannot publish over the previously published versions: 0.1.16.
问题原因:版本号与已发布的版本冲突
解决办法:更改package.json中的版本号

3.提示依赖未引用成功,或者反复要求重新安装依赖
问题原因:npm run lib时main关键字没有填写路径
4.待补充…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值