ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

tech-interview-handbook 如何在本地启动 Docusaurus 站点并完成构建与 gh-pages 部署

tech-interview-handbook 如何在本地启动 Docusaurus 站点并完成构建与 gh-pages 部署 tech-interview-handbook 如何在本地启动 Docusaurus 站点并完成构建与 gh-pages 部署【免费下载链接】tech-interview-handbookCurated coding interview preparation materials for busy software engineers项目地址: https://gitcode.com/GitHub_Trending/te/tech-interview-handbook这篇文章解决一个具体任务把 tech-interview-handbook 仓库中的文档站点tih/website基于 Docusaurus 2 构建在本地跑起来生成生产构建并推送到gh-pages分支。整个流程依赖仓库的 monorepo 工具链 Vite全局 CLI 为vp所有命令都在仓库根目录或其子目录内执行。准备条件确认仓库结构与工具链这是一个 Vite monorepo工作区声明在 pnpm-workspace.yaml 和根 package.json 中包含apps/*与packages/*。本文只涉及其中的网站包 apps/websiteapps/website/package.json 中该包名为tih/website依赖docusaurus/core、docusaurus/preset-classic等^2.4.3版本脚本包括start/devdocusaurus start、builddocusaurus build和deploydocusaurus deploy。根 package.json 声明了enginesnode: 25.8.1、pnpm: 10.32.1且packageManager为pnpm10.32.1。Vite 通过packageManager字段自动检测并接管底层包管理器因此不要直接使用 pnpm、npm 或 Yarn见 AGENTS.md 的 Common Pitfalls 一节。AGENTS.md 还列出了两条 agent 检查项拉取远端变更后先运行vp install完成改动后用vp check和vp test校验。本地只读浏览站点内容时不涉及这两步。第一步安装依赖在仓库根目录执行vp install按 apps/website/README.mdVite 通过vp install统一安装整个 monorepo 的依赖这一步会覆盖apps/website所需的全部 Docusaurus 依赖。一个容易踩的坑AGENTS.md 明确列出Vite 的内置命令vp dev、vp build等永远执行 Vite 自带工具而不是package.json里同名的脚本。本仓库根目录自定义了dev脚本所以启动网站开发服务器必须用vp run dev而不是vp dev。第二步本地启动开发服务器仍然在仓库根目录执行vp run dev这条命令实际执行根 package.json 中的dev脚本vp run --filter tih/website... dev即只针对tih/website及其依赖包运行其dev脚本最终调用docusaurus start。启动后的表现与验证方式以 apps/website/README.md 为准命令会启动本地开发服务器并打开一个浏览器窗口对 JavaScript 和 Markdown 文件的大部分修改会即时反映无需重启服务器。文档站点的文档内容目录为apps/website/contents由 docusaurus.config.js 中docs.path: ./contents指定修改其中的 Markdown 文件即可在浏览器中实时看到变化这是本地开发阶段最直接的结果验证。第三步构建生产静态站点在仓库根目录执行vp run --filter tih/website build该命令执行tih/website包的build脚本docusaurus build将静态内容生成到build目录见 apps/website/README.md 的 Build 一节。构建产物是纯静态文件可以用任何静态内容托管服务承载如果你只是想分发或部署到 GitHub 之外的地方构建到这一步就已足够。第四步部署到 gh-pages 分支文档给出的部署路径针对 GitHub Pages 托管先切换到网站包目录再带两个环境变量执行部署脚本cd apps/website GIT_USERYour GitHub username USE_SSH1 vp run deploy其中Your GitHub username是占位符替换为你自己的 GitHub 用户名vp run deploy执行的是 apps/website/package.json 中的deploy脚本docusaurus deploy。执行前需要明确这条命令的副作用它会构建网站并向远端仓库的gh-pages分支推送内容USE_SSH1表示通过 SSH 推送因此要求当前机器具备对目标仓库的推送权限且本地 Git 的 SSH 密钥已配置可用。部署的目标仓库由 docusaurus.config.js 中的三项配置决定organizationName: yangshunprojectName: tech-interview-handbookurl: https://www.techinterviewhandbook.org、baseUrl: /即本仓库默认部署到yangshun/tech-interview-handbook的gh-pages分支。如果你在自己的 fork 上操作需要把这两个值改成自己的账号与仓库名后再执行部署。部署完成后的结果就是 README 描述的效果网站内容被推送到gh-pages分支。仓库 apps/website/static/CNAME 中写有域名techinterviewhandbook.org表示该gh-pages站点绑定自定义域名若部署到 fork应留意此文件会导致站点指向他人域名可自行决定如何处理。apps/website/static/_redirects 则声明了一批旧路径到新路径的重定向规则随构建产物一并生效用于保证旧链接如/cheatsheet跳转后仍可访问。验证清单按文档给出的信息各阶段的成功判据是阶段命令文档给出的成功结果本地开发vp run dev仓库根目录浏览器窗口打开修改 JS/Markdown 即时生效构建vp run --filter tih/website build生成build目录内含可托管的静态内容部署GIT_USER用户名 USE_SSH1 vp run deployapps/website目录网站被构建并推送到gh-pages分支如果命令行为与预期不符可用vp help查看全部命令列表、vp command --help查看单个命令说明、vp --version检查各工具版本见 AGENTS.md。另外注意 AGENTS.md 中的限制不要尝试运行vp vitest、vp oxlint这类不存在的命令也不要直接安装 Vitest、Oxlint、Oxfmt 或 tsdown这些工具都由 Vite 统一封装。【免费下载链接】tech-interview-handbookCurated coding interview preparation materials for busy software engineers项目地址: https://gitcode.com/GitHub_Trending/te/tech-interview-handbook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表