开发设置及构建、服务等命令

了解如何设置此网站的开发环境。

以下说明将介绍如何设置此网站的开发环境。

云 IDE 设置

Gitpod

通过 Gitpod.io 进行操作

  1. Fork 此仓库。有关帮助,请参阅 Fork a repository

  2. gitpod.io/workspaces 创建新工作区(仅需执行一次)或打开你 Fork 的现有工作区。你也可以访问类似以下的链接:https://gitpod.io#https://github.com/YOUR_GITHUB_ID/opentelemetry.io

    注意:如果你有权限在此仓库中进行操作,或者只是想浏览一下,请打开 https://gitpod.io/#https://github.com/open-telemetry/opentelemetry.io

Gitpod 会自动为你安装特定于仓库的包。现在你可以进行 构建服务以及修改网站文件了。有关如何提交更改的详细信息,请参阅 提交内容

Codespaces

通过 GitHub Codespaces 进行操作

  1. Fork 网站仓库。
  2. 从你的 Fork 中打开一个 Codespace。

你的开发环境将通过 DevContainer 配置进行初始化。现在你可以进行 构建服务以及修改网站文件了。有关如何提交更改的详细信息,请参阅 提交内容

本地设置

  1. Fork 并然后 clone 网站仓库:https://github.com/open-telemetry/opentelemetry.io

  2. 进入仓库目录

    cd opentelemetry.io
    
  3. 安装或升级到 Node.js 的活动 LTS 版本。我们建议使用 nvm 来管理你的 Node 安装。在 Linux 上,运行以下命令,它将安装并升级到 .nvmrc 文件中指定的版本

    nvm install
    

    要在 Windows 上安装,请使用 nvm-windows。我们建议使用 cmd 而不是 Windows PowerShell 来运行以下命令

    nvm install lts && nvm use lts
    
  4. 获取 npm 包和其他先决条件

    npm install
    

启动你喜欢的 IDE。现在你可以进行 构建服务以及修改网站文件了。有关如何提交更改的详细信息,请参阅 提交内容

构建

要构建网站,请运行

npm run build

生成的网站文件位于 public 目录下。

服务

要服务网站,请运行

npm run serve

网站将在 localhost:1313 上提供服务。

如果你需要测试 Netlify 重定向,请使用以下命令并在 localhost:8888 上访问网站

npm run serve:netlify

serve 命令是从内存而不是从磁盘提供文件。

如果在 macOS 上遇到诸如 too many open filespipe failed 之类的错误,你可能需要增加文件描述符限制。请参阅 Hugo issue #6109

内容和子模块

网站由以下内容构建而成

  • content/static/ 等目录下的文件,遵循 Hugo 默认配置。
  • 挂载点,由 Hugo 在 config/_default/module-template.yaml 中的 config 定义。挂载点要么直接来自 content-modules 下的 git 子模块,要么来自 content-modules 的预处理内容(放在 tmp/ 下),除此之外不在其他任何地方。

子模块更改

如果你更改了 content-modules 子模块中的任何内容,那么你首先需要向子模块的仓库提交一个 PR(包含子模块的更改)。只有在子模块 PR 被接受后,你才能更新子模块,使更改在此网站中生效。

管理 content-modules 的更改,最好是与相应的子模块链接到的仓库进行协作,而不是直接在子模块内部操作。

经验丰富的贡献者可以直接在子模块中工作。然后你就可以直接构建和提供(子模块)更改的服务了。默认情况下,CI 脚本在每次调用时都会获取子模块。为了在你操作子模块时阻止此行为,请设置环境变量 GET=no。在提交 PR 之前,你还需要运行 git fetch --unshallow 子模块。或者,设置 DEPTH=100 并重新获取子模块。

DevContainer 支持

此仓库已配置为用于 Development Containers,它们支持各种云和本地 IDE,例如(按字母顺序排列)