最近在整理代码,上传到npm方便使用,所以学习了如何在npm发布一个包,整理写成一篇文章和大家一起交流。
1、注册npm账号
2、确保是登录状态
(在包目录下,终端执行 npm login)
按enter键自动打开页面,进行登录验证。
(上传包之前确保使用的是官方的镜像源)
这里使用 nrm工具(一个用于快速切换 NPM 镜像源的工具。)
npm i nrm -g
常用指令
- nrm ls
//查看镜像源
- nrm use xx
// 使用镜像源
//如 nrm use npm
- nrm test xx
//测试镜像源响应时间
//测试单一镜像源 比如 nrm test taobao
- nrm test
//测试全部镜像源
(下面两个用得比较少)
- nrm add 镜像名称 镜像地址
//添加自定义镜像源
// 比如 nrm add myregistry https://my.custom.registry.com
- nrm del myregistry
//删除镜像源
3、从0-1上传一个包
3.1、初始化项目
3.2、包书写位置
(一般写在index.js文件,看package.json中的main)
书写并暴露,比如
function add(a,b){
return a+b
}
module.exports={
add
}
3.3、上传包
准备工作
重要事情说三遍
确保现在用的是官方的镜像源!!!
确保现在用的是官方的镜像源!!!
确保现在用的是官方的镜像源!!!
nrm ls
比如现在用的是淘宝的镜像源,那么就要切换成官方的镜像源
npm use npm
切换并查看
正式上传
npm publish
(确保是npm是登录成功状态+使用的是官方的镜像源)
上传成功!
4、更新包
(确保代码可用。需要在package.json中修改版本号)
npm publish
4.1、新增/修改代码
4.2、修改版本号
(package.json中的版本号从1.0.0变成1.0.1)
4.3、更新
npm publish
在npm上查看修改结果。
5、删除包
npm unpublish xx --force
//xx 即是包的名字
需满足一定的条件(https://docs.npmjs.com/policies/unpublish 官网文档)
以下是整理得出,仅供参考。
1. 时间限制
- npm 仅允许在包发布后的 72 小时内删除包。这是为了防止包的突然消失给依赖该包的开发者带来不便和潜在的问题。例如,很多项目可能在短时间内就依赖并使用了新发布的包,如果随意删除,可能会导致这些项目无法正常运行。
2. 下载量限制
- 如果包在过去的 24 小时内有下载记录,那么该包不能被删除。这同样是为了保护依赖该包的用户,避免他们因为包的删除而受到影响。
3. 范围包限制
- 对于范围包(Scoped packages),在被下载后就无法删除,只能取消发布(unpublish)。范围包是指名称以
@scope/
开头的包,比如@example/package
。