Node.js 如何发布一个 NPM 包——详细教程

在本文中,我将带大家一步步学习如何创建并发布一个 NPM 包,帮助开发者理解整个流程,并能顺利将自己的 JavaScript 库发布到 NPM 上供他人使用。


1. 安装 Node.js 和 npm

在开始之前,请确保你的电脑上已经安装了 Node.jsnpm (Node.js 自带 npm)。你可以在终端(Windows 用户请使用 cmdPowerShell)输入以下命令检查是否已安装:

bash 复制代码
node -v
npm -v

如果出现版本号,说明已安装。如果没有,请前往 Node.js 官网 下载并安装。


2. 创建一个新的项目文件夹

在合适的目录下运行以下命令,创建项目文件夹并进入:

bash 复制代码
mkdir my-npm-package
cd my-npm-package

3. 初始化 package.json

运行以下命令初始化 package.json 文件:

bash 复制代码
npm init

然后根据提示输入包的名称、版本号、描述、入口文件等信息。或者你可以使用 npm init -y 来直接生成一个默认的 package.json 文件。

示例 package.json(文件名:package.json):

bash 复制代码
{
  "name": "my-npm-package",
  "version": "1.0.0",
  "description": "一个简单的 NPM 包示例",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": ["npm", "package", "example"],
  "author": "你的名字",
  "license": "MIT"
}

4. 编写核心代码

在项目根目录创建 index.js 文件,并编写代码。例如,我们创建一个简单的函数,用于返回 Hello, NPM!

文件名:index.js

bash 复制代码
function sayHello() {
    return "Hello, NPM!";
}

module.exports = sayHello;

5. 创建 README 文件

在根目录创建 README.md,用于向用户介绍你的 NPM 包。

文件名:README.md

bash 复制代码
# my-npm-package

这是一个简单的 NPM 包示例,它提供一个 `sayHello` 方法,返回 `Hello, NPM!`。

## 安装

```sh
npm install my-npm-package

使用示例

javascript 复制代码
const sayHello = require('my-npm-package');

console.log(sayHello()); // 输出: Hello, NPM!
bash 复制代码
---

## 6. 登录 NPM 账户

如果你还没有 NPM 账户,可以前往 [NPM 官网](https://www.npmjs.com/) 注册一个。

然后在终端登录:

```sh
npm login

输入你的 用户名、密码和邮箱 进行登录。


7. 发布 NPM 包

发布前,确保 package.json 中的 name 没有和已有的包重复(可在 NPM 搜索 页面查找)。

如果包名重复,可以在 package.json 修改 name,或者使用 NPM 作用域(Scoped Packages),格式如 @yourusername/package-name

然后,在终端运行以下命令发布包:

bash 复制代码
npm publish

如果是 Scoped Package,需要加上 --access public

bash 复制代码
npm publish --access public

发布成功后,你的包就可以在 npmjs.com 上搜索并安装了!


8. 测试安装并使用

在另一个项目或测试目录运行:

bash 复制代码
npm install my-npm-package

然后创建 test.js 文件并运行:

文件名:test.js

javascript 复制代码
const sayHello = require('my-npm-package');

console.log(sayHello()); // 输出: Hello, NPM!

运行:

bash 复制代码
node test.js

你应该会看到 Hello, NPM! 的输出!


9. 更新 NPM 包

如果你需要更新 NPM 包,比如修复了 bug 或增加了新功能,需要更新 package.json 中的版本号(如 1.0.0 -> 1.0.1),然后重新发布:

bash 复制代码
npm version patch
npm publish

如果是新增功能:

bash 复制代码
npm version minor
npm publish

如果是重大更新:

bash 复制代码
npm version major
npm publish

10. 删除已发布的包(慎用!)

如果你发布了错误的包,可以在 72 小时内 使用以下命令删除:

bash 复制代码
npm unpublish my-npm-package --force

NPM 不允许删除已发布超过 72 小时的包,所以请谨慎发布。


总结

通过本文,你学会了:

  1. 如何创建并初始化一个 NPM 包
  2. 如何编写 index.js 代码并导出功能
  3. 如何创建 README.md 介绍包的用途
  4. 如何登录并发布 NPM 包
  5. 如何安装并使用自己发布的包
  6. 如何更新和删除 NPM 包

希望这篇文章对你有所帮助!如果有问题,欢迎留言讨论 😊

相关推荐
Hongwen10018 分钟前
寒冬之中的AI创意实验:48小时左右从零打造吉卜力风格AI绘图网站
前端·后端·cursor
小鸭呱呱呱20 分钟前
【CSS】- 表单控件的 placeholder 如何控制换行显示?
前端·javascript·css·深度学习·面试·职场和发展·html
小浣熊喜欢揍臭臭40 分钟前
vue+webpack5(高级配置)
前端·javascript·vue.js
Bigger43 分钟前
Tauri(十七)—— 安装包和应用包的区别
前端·app·mac
茉莉蜜茶only1 小时前
【前端实习岗位】淘天集团2026届春季实习生招聘
前端·招聘
Book_熬夜!1 小时前
Vue2——组件的注册与通信方式、默认插槽、具名插槽、插槽的作用域
前端·javascript·vue.js·前端框架·ecmascript
夕水1 小时前
后端说,这个超大数字idxxx会变成xxx,让我知道了js的一个陷阱
前端
关二哥拉二胡1 小时前
向零基础前端介绍什么是 MCP
前端·面试·mcp
Bigger1 小时前
websocket 推送的数据丢了,怎么回事?
前端·websocket·react.js