Skip to content

📦 npm 包发布完整指南

记录一次从零开始发布一个 npm 包的完整流程总结

🎯 项目概述

本指南以 yun-waterfall-uni 瀑布流组件为例,详细介绍了从项目创建到 npm 发布的完整流程。

📋 发布流程总览

阶段 1: 准备工作

  • ✅ 创建 npm 账号
  • ✅ 初始化项目结构
  • ✅ 配置 package.json

阶段 2: 开发与测试

  • ✅ 开发组件功能
  • ✅ 本地测试验证
  • ✅ npm link 测试

阶段 3: 发布上线

  • ✅ npm 登录认证
  • ✅ 发布到 npm 仓库
  • ✅ 验证发布成功

🚀 详细步骤

1. 创建 npm 账号

1.1 注册账号

bash
# 访问 npm 官网注册
https://www.npmjs.com/signup

注册信息:

  • 用户名: tangyy9008
  • 邮箱: 有效邮箱地址
  • 密码: 安全密码

1.2 验证邮箱

  • 检查邮箱收件箱
  • 点击验证链接
  • 完成账号激活

2. 初始化项目

2.1 创建项目目录

bash
mkdir yun-waterfall-uni
cd yun-waterfall-uni

2.2 初始化 package.json

json
{
  "name": "yun-waterfall-uni",
  "version": "0.0.1",
  "description": "uniapp高性能瀑布流组件",
  "main": "index.ts",
  "keywords": [
    "waterfall",
    "vue",
    "uniapp",
    "瀑布流",
    "yun-waterfall-uni"
  ],
  "author": "tangyy9008",
  "license": "MIT"
}

2.3 创建项目结构

yun-waterfall-uni/
├── components/          # 组件文件
│   ├── yun-waterfall.vue
│   └── yun-waterfall-item.vue
├── types/              # 类型定义
│   ├── yun-waterfall.ts
│   └── yun-waterfall-item.ts
├── utils/              # 工具函数
│   ├── dom.ts
│   ├── utils.ts
│   ├── string.ts
│   ├── useTimeout.ts
│   └── index.ts
├── styles/             # 样式文件
│   └── index.scss
├── config/             # 配置文件
│   └── index.ts
├── demo/               # 示例代码
│   ├── index.vue
│   ├── Columns.vue
│   ├── SimulatedImage.vue
│   └── mockData.ts
├── index.ts            # 主入口文件
├── README.md           # 说明文档
├── .npmignore          # npm 忽略文件
└── package.json        # 包配置文件

2.4 创建入口文件 (index.ts)

typescript
// 瀑布流组件主入口文件

// 导出组件
export { default as YunWaterfall } from "./components/yun-waterfall.vue";
export { default as YunWaterfallItem } from "./components/yun-waterfall-item.vue";

// 导出类型定义
export * from "./types/yun-waterfall";
export * from "./types/yun-waterfall-item";

// 导出配置
export * from "./config";

2.5 创建 .npmignore

plaintext
.vscode/
demo/
node_modules/
.git/
*.log
.DS_Store
pnpm-lock.yaml
.gitignore

3. 本地开发与测试

3.1 开发组件功能

  • 实现瀑布流布局算法
  • 添加响应式支持
  • 实现动画效果
  • 添加错误处理

3.2 本地测试方法

方法 1: 直接在 demo 中测试

bash
# 在项目根目录运行
npm run dev  # 如果有开发脚本

方法 2: npm link 测试

bash
# 在组件项目中创建链接
cd yun-waterfall-uni
npm link

# 在测试项目中使用链接
cd ../test-project
npm link yun-waterfall-uni

方法 3: npm pack 测试

bash
# 打包组件
npm pack

# 在测试项目中安装
cd ../test-project
npm install ../yun-waterfall-uni/yun-waterfall-uni-0.0.1.tgz

3.3 测试检查清单

  • ✅ 基础布局功能
  • ✅ 响应式表现
  • ✅ 动画效果
  • ✅ 性能测试
  • ✅ 错误处理
  • ✅ 配置项验证
  • ✅ 事件回调

4. npm 登录与发布

4.1 登录 npm

bash
npm login

输入信息:

  • Username: [您的用户名]
  • Password: [您的密码]
  • Email: [您的邮箱]
  • OTP: [如果启用了双因素认证]

或者跳转网页授权登录

bash
PS D:\code-open\yun-waterfall-uni> npm login
npm notice Log in on https://registry.npmjs.org/
Login at:
https://www.npmjs.com/login?next=/login/cli/ba5c97d7-f7f0-496d-b9ec-d404b9e0e7f3
Press ENTER to open in the browser...

4.2 验证登录状态

bash
npm whoami
# 输出: 您的用户名

4.3 检查包名可用性

bash
npm view yun-waterfall-uni
# 如果返回 404,说明包名可用,可以发布

4.4 发布包

bash
npm publish

发布成功输出:

npm notice 📦  yun-waterfall-uni@0.0.1
npm notice Tarball Contents
npm notice 870B README.md
npm notice 13.4kB components/yun-waterfall-item.vue
npm notice 16.3kB components/yun-waterfall.vue
...
npm notice Publishing to https://registry.npmjs.org/ with tag latest
+ yun-waterfall-uni@0.0.1

5. 发布后验证

5.1 查看包信息

bash
npm view yun-waterfall-uni

5.2 浏览器验证

访问: https://www.npmjs.com/package/yun-waterfall-uni

5.3 安装测试

bash
mkdir test-install
cd test-install
npm init -y
npm install yun-waterfall-uni

⚠️ 常见问题与解决方案

问题 1: 缺少 build 脚本

错误: npm error Missing script: "build"

解决方案:

  • 对于组件库,可以直接发布源码,无需构建
  • 或添加 TypeScript 构建配置

问题 2: 认证失败

错误: npm error code ENEEDAUTH

解决方案:

bash
npm login
# 重新登录

问题 3: 包名冲突

错误: 包名已存在

解决方案:

  • 使用作用域包名: @username/package-name
  • 修改包名: vue-waterfall-uni

问题 4: package.json 警告

警告: npm auto-corrected some errors

解决方案:

bash
npm pkg fix

🔄 版本管理

更新版本

bash
# 补丁版本 (0.0.1 -> 0.0.2)
npm version patch

# 次要版本 (0.0.1 -> 0.1.0)
npm version minor

# 主要版本 (0.0.1 -> 1.0.0)
npm version major

重新发布

bash
npm publish

📊 项目统计

最终包信息:

  • 包名: yun-waterfall-uni
  • 版本: 0.0.1
  • 压缩大小: 14.7 kB
  • 解压大小: 47.3 kB
  • 文件数量: 14 个
  • 发布状态: ✅ 成功

🎉 总结

通过本次发布流程,我们成功地:

  1. 创建了 npm 账号 - 注册并验证了开发者账号
  2. 初始化了项目 - 建立了完整的组件库结构
  3. 完成了开发 - 实现了高性能瀑布流组件
  4. 进行了测试 - 通过多种方式验证了组件功能
  5. 成功发布 - 将包发布到了 npm 仓库
  6. 验证了结果 - 确认包可以正常安装和使用

下一步计划:

  • 📝 完善文档和示例
  • 🔄 根据用户反馈迭代优化
  • 📈 推广和社区建设
  • 🛠️ 持续维护和更新

本文档记录了 yun-waterfall-uni 组件从创建到发布的完整过程,可作为后续项目的参考模板。

Released under the MIT License.