ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Awesome OSS Alternatives 官网开发指南:基于 Docusaurus 2 的安装、本地开发与 GitHub Pages 部署

2026/9/20 19:32:57 拓冰建站 浏览量
Awesome OSS Alternatives 官网开发指南:基于 Docusaurus 2 的安装、本地开发与 GitHub Pages 部署 Awesome OSS Alternatives 官网开发指南基于 Docusaurus 2 的安装、本地开发与 GitHub Pages 部署【免费下载链接】awesome-oss-alternativesAwesome list of open-source startup alternatives to well-known SaaS products 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-oss-alternatives本文是 awesome-oss-alternatives 仓库中website站点的实战开发指南讲解如何基于 Docusaurus 2 将开源项目文档站跑起来从依赖安装、本地热更新开发、静态产物构建到通过 SSH 或 Git 凭据推送到 GitHub Pages 的完整部署链路。读完本文你将掌握该网站从零启动到上线的全部命令与背后的配置原理并能直接在自己的机器上复现整个流程。站点定位与目录结构website/是仓库根 README 记录了项目全貌一份按分类整理的开源替代 SaaS 产品清单的官方文档站点采用Docusaurus 2——一个现代静态网站生成器构建。它把仓库中submissions/*.yaml与 build_website.py 生成的分类 Markdown 文档website/docs/**渲染为可搜索的静态站点让用户能按 API GatewayAuth SSOETL 等约 60 个分类浏览数百个开源项目。关键目录与文件一览website/package.json依赖与脚本定义engines.node 16.14website/docusaurus.config.js站点标题、导航栏、页脚、搜索插件等核心配置website/sidebars.js文档侧边栏采用autogenerated自动按docs目录结构生成website/docs/intro.md文档首页List 入口website/src/components/HomepageFeatures/index.js首页搜索组件封装。环境准备Docusaurus 2 基于 React 17 构建见 website/package.json 中的react: ^17.0.2官方推荐使用Yarn作为包管理器。仓库同时提供了package-lock.json因此 npm 也可用于安装但文档中的命令均以yarn为准。运行前请确认 Node.js 版本不低于 16.14这是 website/package.json 中engines字段声明的硬性要求。安装依赖进入站点目录后执行$ yarn该命令读取 website/package.json安装docusaurus/core、docusaurus/preset-classic、mdx-js/react、prism-react-renderer等依赖。其中docusaurus/core与docusaurus/preset-classic锁定在2.0.0-beta.22版本保证了构建行为的一致性。此外还包含本地搜索插件cmfcmf/docusaurus-search-local版本^0.11.0它被注册在 website/docusaurus.config.js 的plugins字段中为静态站点提供无需外部服务的全文检索能力——这正是首页 Search for alternatives to your favorite product 搜索框见 HomepageFeatures/index.js的实现基础。本地开发与热更新$ yarn start此命令启动本地开发服务器并自动打开浏览器窗口。基于 Docusaurus 的 Webpack 开发服务器源码、Markdown、配置文件如docusaurus.config.js的大多数修改都会实时反映到页面无需手动重启服务非常适合边改边看的效果。本地默认地址为http://localhost:3000baseUrl为/awesome-oss-alternatives/见 website/docusaurus.config.js。首页会展示 Hero 标题 Awesome OSS Alternatives 与副标题 Open-source alternatives to well-known SaaS products下方即搜索组件。开发模式下website/babel.config.js 通过docusaurus/core/lib/babel/preset对 React/JSX 代码做转译确保src目录下的组件如 src/pages/index.js 与 HomepageFeatures/index.js正常渲染。生产构建$ yarn build该命令执行docusaurus build生成静态内容到build目录。构建流程包括抓取docs目录下的全部 Markdown含 website/docs/intro.md 及各分类文档结合 sidebars.js 的autogenerated配置生成文档侧边栏与路由处理blog、pages与静态资源static/img下的 favicon 等按 docusaurus.config.js 中onBrokenLinks: throw的严格策略一旦发现失效链接将直接构建失败保证产出站点链接质量。构建产物是纯静态 HTML/CSS/JS可部署到任意静态托管服务包括 Nginx、S3、Netlify 或 GitHub Pages。部署到 GitHub Pages方式一通过 SSH 部署$ USE_SSHtrue yarn deployUSE_SSHtrue指示docusaurus deploy使用 SSH 协议连接远程仓库适合已在本机配置好 SSH 密钥的场景密钥需已添加到 GitHub 账户。方式二通过 Git 用户名部署$ GIT_USERYour GitHub username yarn deploy不使用 SSH 时通过GIT_USER环境变量指定 GitHub 用户名docusaurus deploy会以 HTTPS 方式推送并在必要时提示输入密码或 Personal Access Token。部署原理docusaurus deploy会先执行一次生产构建然后把build目录内容推送到gh-pages分支。这与 docusaurus.config.js 中的 GitHub Pages 部署配置相呼应organizationName: RunaCapital, // GitHub 组织/用户名 projectName: awesome-oss-atlernatives, // 仓库名 trailingSlash: false,其中organizationName与projectName用于拼接部署目标地址trailingSlash: false控制生成链接不带尾部斜杠。若使用 GitHub Pages 托管这条命令正是“构建网站并推送到gh-pages分支”的最便捷方式——推送后 GitHub Pages 会自动发布站点。提示仓库根目录下的 build_website.py 负责从submissions/*.yaml生成website/docs下的分类文档属于发布流水线的前置步骤日常仅做文档站点开发时直接在website目录执行上述 yarn 命令即可。常用辅助脚本website/package.json 中还提供了几个开发辅助命令可一并掌握命令作用yarn swizzle自定义 Docusaurus 主题组件yarn clear清理构建缓存docusaurus clear解决构建异常时很有用yarn serve在本地以生产模式伺服build目录用于部署前预览yarn write-translations生成多语言翻译占位文件当前站点仅启用en语言yarn write-heading-ids为文档标题批量生成锚点 ID常见问题排查构建失败并提示 broken linkonBrokenLinks: throw会在任何内部链接失效时中断构建请检查docs内的相对链接是否指向真实存在的文件如[intro](https://link.gitcode.com/i/961eee2e2f0e7e53667c75dbb9b78d40)。yarn start端口被占用Docusaurus 支持通过--port参数指定端口如yarn start --port 3001。Node 版本过低engines.node 16.14不满足时建议使用 nvm 切换到 Node 16.14 再执行安装。yarn deploy权限不足确认GIT_USER对应的账户对目标仓库具有推送gh-pages分支的权限若使用组织仓库注意组织级分支保护策略。【免费下载链接】awesome-oss-alternativesAwesome list of open-source startup alternatives to well-known SaaS products 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-oss-alternatives创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考