如何开发一个自己的包并发布到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 小时内不允许重复发布

相关推荐
LYFlied8 小时前
从循环依赖检查插件Circular Dependency Plugin源码详解Webpack生命周期以及插件开发
前端·webpack·node.js·编译原理·plugin插件开发
Asurplus10 小时前
【VUE】15、安装包管理工具yarn
前端·vue.js·npm·node.js·yarn
这是个栗子11 小时前
【问题解决】Vue2 与 Vue3项目中 Node.js 版本选择
前端·node.js·nvm
fpl111611 小时前
npm :无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本
前端·vscode·npm·node.js·命令模式
Yupureki12 小时前
《算法竞赛从入门到国奖》算法基础:入门篇-前缀和
c语言·数据结构·c++·算法·1024程序员节
宋冠巡12 小时前
Docker容器化Node.js应用教程
docker·node.js
CoderYanger1 天前
动态规划算法-01背包问题:50.分割等和子集
java·算法·leetcode·动态规划·1024程序员节
vipbic1 天前
解决npm publish的404/403和配置警告全记录
前端·npm·node.js
CoderYanger1 天前
动态规划算法-两个数组的dp(含字符串数组):48.最长重复子数组
java·算法·leetcode·动态规划·1024程序员节
晨晖21 天前
安装node.js,使用vue的准备环境
node.js