如何开发一个自己的包并发布到npm

注册npm账号

点击 npm官网 注册自己的账号

构建一个自己的包

本地新建一个文件夹

文件夹内新建三个文件,index.js,package.json,README.md

index.js:写分享出去的对象。

package.json:写name:包的名字(必须),version:版本号,main:包的入口文件,以及其他相关配置信息。

注意:package.json中的name在npm官网上搜一下,必须具有唯一性

比如

README.md:说明文档,没有特殊要求

下面举一个例子,构建一个将一个数据转换为万元为单位的包

包的结构如下:

index.js内容如下:

javascript 复制代码
const thousand=require('./dist/thousand');
module.exports={
    ...thousand
}

dist/thousand.js内容如下:

javascript 复制代码
 const formatAsTenThousand = number => {
    if (!number) return "";
    return (number / 10000).toFixed(1);
  };
  exports.formatAsTenThousand=formatAsTenThousand

package.json内容如下:

javascript 复制代码
{
    "name": "thousand_tools",
    "version": "1.0.0",
    "main": "index.js",
    "description": "将一个数据转换为万元为单位",
    "keywords": [
        "thousand",
        "escape"
    ],
    "license": "ISC",
    "dependencies": {
        "thousand_tools": "^1.0.0"
    }
}

README.md内容自己看着写

登录npm账号

确认本地终端为npm

在登录之前,要确认本地的镜像源为npm官方服务器,否则会导致发布失败。在终端输入:

javascript 复制代码
npm config get registry

上图看出本地终端是淘宝镜像,所以要切换当前镜像为npm

切换npm镜像

两种方式

1、nrm 镜像源管理

终端输入npm i nrm -g,全局安装nrm

javascript 复制代码
npm i nrm -g

安装完成后,在本地终端输入nrm ls,查看可用的镜像源

javascript 复制代码
nrm ls

上图表示,当前镜像源为npm

第一次上传包之前,终端输入 nrm use npm,确保切换镜像源为npm

javascript 复制代码
nrm use npm

nrm use 镜像源名称,表示切换为当前镜像源。比如nrm use yan,nrm use taobao等

2、命令行直接切换

终端直接输入npm config set 镜像源地址进行切换

javascript 复制代码
npm config set https://registry.npmjs.org/

终端登录npm

终端输入npm login

javascript 复制代码
npm login

按照提示输入账号,密码

登录完成之后,可以终端输入 npm whoami确定是否登录成功

javascript 复制代码
npm whoami

发布包到npm

按照上面步骤,登录成功之后,切换到要发布的包的根目录,终端输入npm publish

javascript 复制代码
npm publish

然后回到npm官网

看到上图,thousand_tools包即发布成功。

删除包

终端输入

javascript 复制代码
npm unpublish thousand_tools --force

npm unpublish 包名 --force,即可从 npm 删除已发布的包。

比如删除上面thousand_tools包

注意:

npm unpublish 命令只能删除 72 小时以内发布的包

npm unpublish 删除的包,在 24 小时内不允许重复发布

相关推荐
Mr_li10 小时前
NestJS 集成 TypeORM 的最优解
node.js·nestjs
UIUV12 小时前
node:child_process spawn 模块学习笔记
javascript·后端·node.js
前端付豪2 天前
Nest 项目小实践之注册登陆
前端·node.js·nestjs
天蓝色的鱼鱼2 天前
Node.js 中间层退潮:从“前端救星”到“成本噩梦”
前端·架构·node.js
codingWhat2 天前
uniapp 多地区、多平台、多环境打包方案
前端·架构·node.js
小p2 天前
nodejs学习: 服务器资源CPU、内存、硬盘
node.js
Mr_li2 天前
手摸手,教你如何优雅的书写 NestJS 服务配置
node.js·nestjs
QQ5110082852 天前
python+springboot+django/flask的校园资料分享系统
spring boot·python·django·flask·node.js·php
q***09802 天前
最新最详细的配置Node.js环境教程
node.js
WeiXin_DZbishe2 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5