在npm上传属于自己的包
前言
最近在整理代码,上传到npm方便使用,所以学习了如何在npm发布一个包,整理写成一篇文章和大家一起交流。
修改记录
更新内容 | 更新时间 |
---|---|
文章第一版 | 25.2.10 |
新增“使用包”,“删除包的测试” | 25.2.12 |
1、注册npm账号
npm | Home
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、上传包
--1、准备工作
重要事情说三遍
确保现在用的是官方的镜像源!!!
确保现在用的是官方的镜像源!!!
确保现在用的是官方的镜像源!!!
nrm ls
比如现在用的是淘宝的镜像源,那么就要切换成官方的镜像源
npm use npm
切换并查看
--2、正式上传
npm publish
(确保是npm是登录成功状态+使用的是官方的镜像源)
上传成功!
4、使用包(2.12-直接看4.3)
按步骤从0-1上传一个包,接下来进行一个测试。
为了方便演示,我新上传了一个包。
4.1、新包相关代码:
// index.js
function add(a, b) {
return a + b;
}
function sub (a, b) {
return a - b;
}
module.exports = {
add,
sub
};
4.2、上传记录:
4.3、正式使用:
# 创建一个新的测试项目
mkdir test-project
cd test-project
npm init -y
# 安装刚刚发布的包
npm install dd_math
在项目目录下新建index.js
const myPackage = require('dd_math');
const result = myPackage.add(5,6);
console.log(result);
const subRes=myPackage.sub(10,5);
console.log(subRes);
运行测试:node index.js
5、更新包
(确保代码可用。需要在package.json中修改版本号)
npm publish
5.1、新增/修改代码
5.2、修改版本号
(package.json中的版本号从1.0.0变成1.0.1)
5.3、更新
npm publish
在npm上查看修改结果。
6、删除包
6.1、核心语句
npm unpublish xx --force
//xx 即是包的名字
6.2、删除的条件
需满足一定的条件
官网文档 https://docs.npmjs.com/policies/unpublish
以下是整理得出,仅供参考。
1. 时间限制
- npm 仅允许在包发布后的 72 小时内删除包。这是为了防止包的突然消失给依赖该包的开发者带来不便和潜在的问题。例如,很多项目可能在短时间内就依赖并使用了新发布的包,如果随意删除,可能会导致这些项目无法正常运行。
2. 下载量限制
- 如果包在过去的 24 小时内有下载记录,那么该包不能被删除。这同样是为了保护依赖该包的用户,避免他们因为包的删除而受到影响。
3. 范围包限制
- 对于范围包(Scoped packages),在被下载后就无法删除,只能取消发布(unpublish)。范围包是指名称以
@scope/
开头的包,比如@example/package
。
6.3、测试删除
我目前上传的包
尝试将kainama_math包进行删除。
删除之前确保:已经登录npm、现在使用的是官方镜像源!
删除之前确保:已经登录npm、现在使用的是官方镜像源!
删除之前确保:已经登录npm、现在使用的是官方镜像源!
在上传包的项目目录下执行语句
npm unpublish kainama_math --force
登录npm进行查看结果,成功删除kainam_math包!
7、小结
在后续上传包的时候,我们尽可能上传有意义的代码,遵守相关的代码上传和社区规则。
如果你喜欢这篇文章,请留下你的点赞、收藏吧~
期待你的关注,一起交流学习~