当前位置: 首页 > article >正文

在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、小结 

在后续上传包的时候,我们尽可能上传有意义的代码,遵守相关的代码上传和社区规则。

如果你喜欢这篇文章,请留下你的点赞、收藏吧~

期待你的关注,一起交流学习~ 


http://www.kler.cn/a/542024.html

相关文章:

  • 嵌入式linux系统中VIM编辑工具用法与GCC参数详解
  • C语言预处理艺术:编译前的魔法之旅
  • 点大商城V2-2.6.6源码全开源uniapp +搭建教程
  • 从零到一:我的元宵灯谜小程序诞生记
  • 生成式聊天机器人 -- 基于Pytorch + Global Attention + 双向 GRU 实现的SeqToSeq模型 -- 下
  • 爬虫技巧汇总
  • 【RabbitMQ的x-death头】消息死亡记录头流转示例
  • 攻防世界32 very_easy_sql【SSRF/SQL时间盲注】
  • android的第一个app项目(java版)
  • C++ Primer 简单语句
  • webpack配置之---output.publicPath
  • 【机器学习】 特征归一化的重要性及方式
  • 【Day37 LeetCode】动态规划DP Ⅹ 子序列问题
  • centos 8和centos 9 stream x64的区别
  • 寒假集训思维训练5题解
  • VSCode|IDEA|PyCharm接入DeepSeek R1
  • 【数据结构-Tire树】力扣1268. 搜索推荐系统
  • 如何在本地部署deepseek?
  • 【目标检测json2txt】label从COCO格式json文件转YOLO格式txt文件
  • 具身智能训练新思路!将生成视频用于训练机器人
  • SpringBoot旧物置换网站
  • 301.华为交换机堆叠技术基础
  • 拯救者Y9000P双系统ubuntu22.04安装4070显卡驱动
  • 2.Excel:滨海市重点中学的物理统考考试情况❗(15)
  • 如何利用DeepSeek开源模型打造OA系统专属AI助手
  • 华为OD最新机试真题-最小的调整次数-C++-OD统一考试(E卷)