Skip to main content

npm 包发布完整流程

npm 包发布完整流程

1. 准备工作

(1) 注册 npm 账号

  • 访问 npm 官网 注册账号
  • 或在终端直接注册:
    npm adduser
    
    按提示输入 UsernamePasswordEmail

(2) 登录 npm

npm login

输入用户名、密码和邮箱进行验证。

(3) 检查登录状态

npm whoami

如果显示你的用户名,说明登录成功。


2. 创建 npm 包

(1) 初始化项目

mkdir my-package && cd my-package
npm init -y

这会生成 package.json 文件。

(2) 编写包代码

  • 创建 index.js(或其他入口文件):
    module.exports = {
      sayHello: () => "Hello from my npm package!"
    };
    
  • 确保 package.json 中的 "main" 字段指向入口文件(默认是 index.js)。

(3) 添加 README.md

# my-package
A demo npm package.

## Installation
```bash
npm install my-package

Usage

const myPackage = require('my-package');
console.log(myPackage.sayHello()); // "Hello from my npm package!"

---

## **3. 发布 npm 包**
### **(1) 检查包名是否可用**
```bash
npm search my-package

如果返回 No matches found,说明名称可用。

(2) 发布包

npm publish

如果是首次发布公开包,可以不加 --access public。私有包需要付费订阅。

(3) 发布成功

终端显示类似:

+ my-package@1.0.0

此时可以在 npmjs.com 搜索你的包名查看。


4. 更新 npm 包

(1) 修改代码后更新版本

npm 使用 语义化版本(SemVer)

  • patch(补丁版本,如 1.0.0 → 1.0.1
  • minor(次版本,如 1.0.0 → 1.1.0
  • major(主版本,如 1.0.0 → 2.0.0

更新版本号:

npm version patch  # 或其他:minor / major

(2) 重新发布

npm publish

5. 撤销发布

(1) 删除某个版本

npm unpublish my-package@1.0.0

注意:72 小时后不能再删除同一版本。

(2) 彻底删除包

npm unpublish my-package --force

注意

  • 只有 24 小时内 发布的包可以彻底删除。
  • 删除后 24 小时内 不能发布同名包。

6. 常见问题

1. 403 Forbidden(包名已存在)

  • 修改 package.json 中的 "name" 字段,换一个唯一名称。

2. 402 Payment Required(私有包需付费)

  • 公开包:
    npm publish --access public
    
  • 私有包需订阅 npm 付费计划。

3. 发布失败(未登录或权限问题)

  • 检查是否登录:
    npm whoami
    
  • 重新登录:
    npm login
    

总结

步骤 命令
注册账号 npm adduser
登录 npm login
初始化包 npm init -y
发布 npm publish
更新版本 npm version patch/minor/major + npm publish
撤销发布 npm unpublish <package>@<version>

最佳实践

  • 包名尽量唯一(可加前缀,如 @username/my-package)。
  • 使用 README.md 说明用法。
  • 遵循语义化版本(SemVer)。

现在你可以发布自己的 npm 包了! 🚀