温馨提示×

Debian Node.js如何进行文档编写

小樊
35
2025-12-14 16:19:34
栏目: 编程语言

Debian 环境下 Node.js 文档编写与发布全流程

一 环境准备与工具选型

  • Debian 上准备文档开发环境,建议先安装 Node.jsnpm,并选择版本管理工具(如 nvm)以便多版本切换;如需全局安装文档工具,使用 npm 的 -g 选项。示例:
    • 安装 Node.js 与 npm:sudo apt update && sudo apt install -y nodejs npm
    • 使用 nvm(可选):curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash,随后 source ~/.bashrc && nvm install node
    • 全局安装文档工具:npm i -g jsdoc swagger-jsdoc swagger-ui-express
  • 文档工具选型建议:
    • 代码 API 注释与静态站点生成:优先用 JSDoc,可配合自定义模板输出 HTML 或集成到站点。
    • REST API 文档与在线调试:使用 OpenAPI/Swagger,通过 swagger-jsdoc + swagger-ui-express 从注释生成交互式文档页面。

二 项目文档结构与规范

  • 推荐的仓库结构:
    • docs/:存放生成的站点与静态资源
    • src/:源码
    • test/:测试
    • README.md:项目概览、安装、快速开始
    • CONTRIBUTING.md:贡献指南
    • .github/workflows/docs.yml:CI 自动构建与发布
  • Markdown 写作规范要点:
    • 文件名使用小写+连字符(如 getting-started.md
    • 每行不超过 120 个字符
    • 标题层级清晰(# / ## / ###
    • 链接优先使用引用式链接,便于维护
    • 列表与表格保持对齐与可读性
  • 语言与术语:
    • 使用美式英语;避免第一人称;术语首次出现需解释
    • 专有名词规范:Node.js、可执行文件 node、版本如 Node.js 18.x

三 代码即文档 JSDoc 实践

  • 安装与配置:
    • 安装:npm i -D jsdoc
    • 配置示例 jsdoc.json
      • { "source": { "include": ["src"], "exclude": ["node_modules"] }, "opts": { "destination": "docs/jsdoc" } }
  • 注释示例(JSDoc):
    • /**
    • * 计算两数之和
    • * @param {number} a - 第一个加数
    • * @param {number} [b=0] - 第二个加数,默认 0
    • * @returns {number} 两数之和
    • * @example
    • * sum(2, 3) // 5
    • */
    • function sum(a, b = 0) { return a + b; }
  • 生成与集成:
    • 生成:npx jsdoc -c jsdoc.json
    • 建议将 docs/jsdoc 加入站点导航,并在 package.json 增加脚本:
      • "docs:jsdoc": "jsdoc -c jsdoc.json"

四 API 文档 OpenAPI Swagger 实践

  • 安装与最小配置:
    • 安装:npm i swagger-jsdoc swagger-ui-express
    • 配置与挂载(swagger.js):
      • const swaggerJSDoc = require('swagger-jsdoc'); const swaggerUi = require('swagger-ui-express'); const express = require('express'); const app = express();
      • const swaggerDefinition = { openapi: '3.0.0', info: { title: 'Node.js API', version: '1.0.0' }, servers: [{ url: 'http://localhost:3000' }] };
      • const options = { swaggerDefinition, apis: ['./routes/*.js'] }; const swaggerSpec = swaggerJSDoc(options);
      • app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec)); app.listen(3000);
  • 注释示例(OpenAPI/Swagger):
    • /**
    • * @swagger
    • * /users:
    • * get:
    • * summary: 获取用户列表
    • * responses:
    • * 200:
    • * description: 用户数组
    • * content:
    • * application/json:
    • * schema:
    • * type: array
    • * items:
    • * type: object
    • * properties:
    • * id: { type: integer, example: 1 }
    • * name: { type: string, example: John Doe }
    • */
  • 要点:为每个端点提供用途、方法、路径参数、请求体、响应示例、错误码;在 Debian 上运行时确保监听 0.0.0.0 以便容器或远程访问。

五 本地预览与持续集成发布

  • 本地预览:
    • 使用任意静态服务器预览 Markdown/HTML 文档,例如:npx http-server docs -p 8080
    • API 文档访问:http://localhost:3000/api-docs
  • 持续集成与发布(GitHub Actions 示例 .github/workflows/docs.yml):
    • 触发:on: push: branches: [ main ]
    • 任务:
      • 检出代码:actions/checkout@v4
      • 安装依赖:npm ci
      • 生成文档:npm run docs:jsdoc
      • 部署到 GitHub Pagespeaceiris/actions-gh-pages@v3docs/ 推送到 gh-pages 分支
  • 小贴士:
    • package.json 增加脚本:"docs": "jsdoc -c jsdoc.json && cp -r docs/jsdoc docs-site"(按需拷贝静态资源)
    • 若项目对外提供 API,建议同时发布 API 文档站点代码 API 文档,并在 README 给出直达链接。

0