您正在浏览 Nuxt 2 文档。前往 Nuxt 3 文档, 或了解更多关于 Nuxt 2 长期支持。

← Back

贡献指南

欢迎任何形式的 Nuxt 贡献!

贡献指南

欢迎任何形式的 Nuxt 贡献!

问题报告

为项目做贡献的一个好方法是在遇到问题时提交详细的报告:Bug 报告

提交时,请务必准备好可复现 Bug 的仓库或 CodeSandBox 。Bug 的可复现性越高,我们就能越快着手修复。

Pull Request

哪怕只是修正错别字,我们也欢迎您提交 Pull Request!

但重要的改进需要关联到现有的功能请求 或 Bug 报告 。

开始

  1. 将 Nuxt 仓库 Fork 到您自己的 GitHub 账户,然后将其克隆 到本地设备。
  2. 运行 npm install 或 yarn install 以安装依赖模块。

npm 和 yarn 都存在安装依赖失败的情况。如需解决此问题,请删除示例应用的 node_modules 目录后重新安装,或在本地安装缺失的依赖。

如需添加依赖模块,请使用 yarn add。yarn.lock 文件是所有 Nuxt 依赖关系的正确来源。

设置

在运行测试之前,请确保所有依赖包均已满足,并构建所有包:

yarn
yarn build

测试结构

包含 Bug 修复或新功能的优质 Pull Request 通常都包含测试。为了帮助您编写优质测试,下面介绍我们的测试结构:

Fixtures

Fixtures(位于 tests/fixtures 下)包含若干 Nuxt 应用程序。为了尽量缩短构建时间,我们不会为每个测试单独构建 Nuxt 应用,而是在运行实际单元测试之前构建 Fixtures(yarn test:fixture)。

提交 Pull Request 时,请务必修改或添加新的 Fixture(如适用),以确保变更内容得到正确反映。

另外,修改 Fixture 后,请不要忘记通过 jest test/fixtures/my-fixture/my-fixture.test.js 运行对应测试来重新构建 Fixture!

单元测试

单元测试位于 tests/unit,在 Fixture 构建完成后运行。每个测试都会使用新的 Nuxt 服务器,因此不存在共享状态(构建步骤的初始状态除外)。

添加单元测试后,可以直接运行它们:

jest test/unit/test.js

也可以运行整个单元测试套件:

yarn test:unit

请注意,您可能需要重新构建之前的 Fixture!

测试变更

在创建 Pull Request 的过程中,您可能需要检查 Fixture 是否正确设置,或调试当前的变更。

为此,您可以使用 Nuxt 脚本本身来启动 Fixture 或示例应用:

yarn nuxt examples/your-app
yarn nuxt test/fixtures/your-fixture-app

npm link 也有类似效果,但已知存在一些问题。因此,建议直接调用 yarn nuxt 来运行示例。

示例

如果您正在开发较大的功能,请在 examples/ 中设置示例应用。这对于理解变更内容很有帮助,也有助于 Nuxt 用户深入理解您所开发的功能。

Lint

您可能已经注意到,我们使用 ESLint 来强制统一代码风格。提交变更前,请运行 yarn lint 检查代码风格是否正确。如有问题,可使用 yarn lint --fix 或 npm run lint -- --fix(不是错别字!)来修复大多数风格问题。如果仍有错误残留,则需要手动修复。

文档

添加新功能、进行重构或修改 Nuxt 行为时,您可能希望将变更记录在文档中。请向 docs 仓库提交 Pull Request。不必立即编写文档(但请在 Pull Request 足够成熟后尽快编写)。

最终检查清单

提交 Pull Request 时,会有一个简单的模板供您填写。请在检查清单中勾选所有适当的"回答(answers)"。

故障排除

在 macOS 上调试测试

搜索 getPort() 可以发现它被用于在测试期间启动新的 Nuxt 进程。在 macOS 上有时无法正常工作,可能需要手动为测试设置端口。

另一个常见问题是,运行 Fixture 测试时 Nuxt 进程可能会在内存中挂起。出现幽灵进程时,后续测试往往无法正常运行。如果您怀疑遇到了此问题,请运行 ps aux | grep -i node 来排查挂起的测试进程。