npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

create-backend-service

v1.1.6

Published

A CLI tool to create backend service projects based on Koa.js

Readme

Backend Service Scaffold

一个基于 Koa.js 的后端服务脚手架工具,让您快速创建功能完整的企业级后端项目。

🚀 快速开始

全局安装

npm install -g create-backend-service

创建新项目

# 使用默认配置
create-backend-service my-project

# 指定模板
create-backend-service my-project --template full

# 跳过安装和git初始化
create-backend-service my-project --no-install --no-git

交互式创建

create-backend-service

然后按照提示选择配置选项。

📋 可用模板

Full Template (完整模板)

包含所有功能特性:

  • ✅ 用户认证与授权
  • ✅ 文件上传管理
  • ✅ 邮件服务
  • ✅ 缓存系统 (Redis)
  • ✅ 基于角色的权限控制
  • ✅ 数据统计
  • ✅ 系统监控
  • ✅ 数据导入导出
  • ✅ 消息队列
  • ✅ 国际化支持
  • ✅ API 管理

Basic Template (基础模板)

包含核心功能:

  • ✅ 用户认证与授权
  • ✅ 文件上传管理
  • ✅ 邮件服务
  • ✅ 缓存系统 (Redis)
  • ✅ 基于角色的权限控制
  • ✅ 数据统计

Minimal Template (最小模板)

包含基础功能:

  • ✅ 用户认证与授权
  • ✅ 文件上传管理

🛠️ 功能特性

🔐 认证与授权

  • JWT 用户认证
  • 用户注册/登录
  • 密码加密存储
  • Token 刷新机制
  • 用户信息管理

📁 文件管理

  • 文件上传接口
  • 文件类型验证
  • 文件大小限制
  • 图片压缩处理
  • 文件存储管理

📧 邮件服务

  • SMTP 邮件发送
  • 邮件模板系统
  • 异步邮件队列
  • 邮件发送统计
  • 邮件验证码

🔄 缓存系统

  • Redis 缓存支持
  • 会话缓存
  • API 响应缓存
  • 数据库查询缓存
  • 缓存失效策略

👥 权限管理

  • RBAC 角色权限
  • 权限分配系统
  • 接口权限控制
  • 菜单权限管理
  • 数据权限控制

📊 数据统计

  • 用户行为统计
  • API 调用统计
  • 业务数据报表
  • 实时数据监控
  • 数据可视化

📈 系统监控

  • 性能指标监控
  • 错误率统计
  • 系统资源监控
  • 告警通知系统
  • 监控面板

📋 数据导入导出

  • Excel 数据导入
  • CSV 数据导出
  • 数据备份恢复
  • 批量数据处理
  • 数据格式转换

🔄 消息队列

  • 异步任务处理
  • 邮件发送队列
  • 文件处理队列
  • 定时任务调度
  • 任务状态跟踪

🌍 国际化

  • 多语言支持
  • 语言包管理
  • 动态语言切换
  • 时区处理
  • 货币格式化

🔧 API 管理

  • API 版本控制
  • 接口限流策略
  • API 调用统计
  • 接口性能分析
  • API 文档生成

📖 使用说明

1. 创建项目

create-backend-service my-backend-service

2. 进入项目目录

cd my-backend-service

3. 安装依赖

npm install

4. 配置环境变量

cp .env.example .env

编辑 .env 文件,配置数据库和其他服务。

5. 启动服务

# 开发模式
npm run dev

# 生产模式
npm start

6. 查看 API 文档

访问 http://localhost:3000/api-docs 查看完整的 API 文档。

🏗️ 项目结构

├── bin/                 # 启动脚本
├── config/              # 配置文件
├── controllers/         # 控制器
├── middleware/          # 中间件
├── models/              # 数据模型
├── routes/              # 路由
├── services/            # 业务逻辑
├── public/              # 静态资源
├── uploads/             # 上传文件
├── logs/                # 日志文件
├── tests/               # 测试文件
├── app.js               # 应用入口
├── package.json         # 项目配置
└── README.md            # 项目说明

🔧 开发

代码规范

npm run lint
npm run lint:fix

测试

npm test
npm run test:watch
npm run test:coverage

📝 配置选项

命令行选项

  • --template <template>: 选择模板 (basic, full, minimal)
  • --database <database>: 选择数据库 (mysql, postgresql, sqlite)
  • --no-git: 跳过 git 初始化
  • --no-install: 跳过依赖安装

环境变量

  • NODE_ENV: 运行环境
  • PORT: 服务端口
  • DB_HOST: 数据库主机
  • DB_PORT: 数据库端口
  • DB_NAME: 数据库名称
  • DB_USER: 数据库用户
  • DB_PASSWORD: 数据库密码
  • JWT_SECRET: JWT 密钥
  • REDIS_HOST: Redis 主机
  • REDIS_PORT: Redis 端口
  • SMTP_HOST: SMTP 主机
  • SMTP_USER: SMTP 用户
  • SMTP_PASS: SMTP 密码

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📦 发布和更新流程

🚀 首次发布

  1. 登录 npm 账户
npm login
# 或使用令牌
npm config set //registry.npmjs.org/:_authToken YOUR_TOKEN_HERE
  1. 检查包信息
npm whoami
npm view create-backend-service
  1. 发布包
npm publish
  1. 验证发布
npm install -g create-backend-service
create-backend-service --help

🔄 更新发布流程

每次修改脚手架工具后,都需要重新发布:

快速发布 (推荐)

# 使用发布脚本 - 自动完成所有步骤
npm run publish:patch   # 补丁版本 (修复bug)
npm run publish:minor   # 小版本 (新功能)
npm run publish:major   # 大版本 (重大变更)

手动发布

# 1. 更新版本号
npm version patch  # 或 minor/major

# 2. 测试更新
npm test

# 3. 发布更新
npm publish

# 4. 推送标签
git push --tags

# 5. 验证更新
npm install -g create-backend-service@latest

📋 版本更新检查清单

在每次发布前,请确保:

  • [ ] 版本号已更新 (package.json 中的 version 字段)
  • [ ] CHANGELOG.md 已更新 (记录本次更新的内容)
  • [ ] README.md 已更新 (如有新功能或配置变更)
  • [ ] 测试通过 (node test-scaffold.js 无错误)
  • [ ] 代码格式化 (使用 npm run lint:fix)
  • [ ] 依赖更新 (如有新依赖,更新 package.json)

🔧 开发工作流

本地开发

# 1. 克隆项目
git clone <your-repo-url>
cd backend-scaffold

# 2. 安装依赖
npm install

# 3. 开发新功能
# 修改 lib/generateTemplate.js 等文件

# 4. 测试
node test-scaffold.js

# 5. 提交代码
git add .
git commit -m "feat: add new feature"
git push

发布流程

# 1. 更新版本
npm version patch  # 或 minor/major

# 2. 运行测试
npm test  # 如果有测试脚本
node test-scaffold.js

# 3. 发布
npm publish

# 4. 推送标签
git push --tags

📝 更新日志模板

CHANGELOG.md 中记录更新内容:

## [1.1.0] - 2024-10-19

### Added

- 新增系统监控功能路由
- 新增数据导入导出功能路由
- 完善基础中间件文件生成
- 添加用户路由文件生成

### Fixed

- 修复缺失的 users.js 路由文件
- 完善错误处理中间件
- 优化项目结构生成

### Changed

- 更新依赖版本
- 改进代码格式化

🐛 常见问题解决

1. 发布失败 - 包名已存在

# 检查包名是否可用
npm view create-backend-service

# 如果包名冲突,修改 package.json 中的 name 字段

2. 版本号冲突

# 查看当前版本
npm view create-backend-service version

# 手动设置版本号
npm version 1.2.0

3. 权限问题

# 检查登录状态
npm whoami

# 重新登录
npm logout
npm login

4. 测试失败

# 清理测试目录
rm -rf test-project

# 重新运行测试
node test-scaffold.js

🔍 发布后验证

发布成功后,进行以下验证:

  1. 检查 npm 页面: https://www.npmjs.com/package/create-backend-service
  2. 测试全局安装:
npm install -g create-backend-service@latest
create-backend-service --version
  1. 测试项目生成:
create-backend-service test-verification --template basic --no-install --no-git

📊 版本管理策略

  • 补丁版本 (patch): 修复 bug,不破坏现有功能
  • 小版本 (minor): 新增功能,向后兼容
  • 大版本 (major): 重大变更,可能不兼容

🎯 最佳实践

  1. 语义化版本: 遵循 SemVer 规范
  2. 测试优先: 每次更新前都要运行测试
  3. 文档同步: 更新功能时同步更新文档
  4. 向后兼容: 尽量保持向后兼容性
  5. 及时发布: 功能完成后及时发布,避免积累过多变更

📄 许可证

MIT License

🔗 相关链接


作者: Jiuli
邮箱: [email protected]
版本: 1.0.0
最后更新: 2024-10-19