通过 100 多个技巧学习 Nuxt!

框架

关于向框架仓库贡献的一些具体要点。

在您阅读完通用贡献指南后,这里有一些关于向 nuxt/nuxt 仓库贡献的具体要点。

Monorepo 指南

  • packages/kit:用于编写 Nuxt 模块的工具包,以 @nuxt/kit 的形式发布。
  • packages/nuxt:Nuxt 的核心,以 nuxt 的形式发布。
  • packages/schema:跨版本的 Nuxt 类型定义和默认值,以 @nuxt/schema 的形式发布。
  • packages/test-utils:Nuxt 的测试实用程序,以 @nuxt/test-utils 的形式发布。
  • packages/vite:用于 Nuxt 的 Vite 打包器,以 @nuxt/vite-builder 的形式发布。
  • packages/webpack:用于 Nuxt 3 的 webpack 打包器,以 @nuxt/webpack-builder 的形式发布。

设置

要为 Nuxt 做贡献,您需要设置本地环境。

  1. Fork nuxt/nuxt 仓库到您自己的 GitHub 账户,然后将其 克隆到您的本地设备。
  2. 确保使用最新的 Node.js (20.x)
  3. 启用 Corepack 以拥有 pnpmyarn
    终端
    corepack enable
    
  4. 运行 pnpm install --frozen-lockfile 以使用 pnpm 安装依赖项
    终端
    pnpm install --frozen-lockfile
    
    如果您要添加依赖项,请使用 pnpm add
    pnpm-lock.yaml 文件是所有 Nuxt 依赖项的真实来源。
  5. 激活被动开发系统
    终端
    pnpm dev:prepare
    
  6. 检出一个分支,您可以在其中工作并提交您的更改
    终端
    git checkout -b my-new-branch
    

然后,针对playground 测试您的更改,并在提交 pull request 之前测试您的更改。

Playground

在处理 pull request 时,您可能需要检查您的更改是否正常工作。

您可以修改 playground/ 中的示例应用程序,并运行

终端
pnpm dev
请确保不要将其提交到您的分支,但将一些示例代码添加到您的 PR 描述中可能会有所帮助。 这可以帮助审阅者和其他 Nuxt 用户深入了解您构建的功能。

测试

每个新功能都应该有一个相应的单元测试(如果可能)。此仓库中的 test/ 目录目前正在开发中,但请尽力创建一个新的测试,遵循已有的示例。

在创建 PR 或将其标记为准备好审查之前,请通过运行以下命令确保所有测试都通过:

终端
pnpm test

代码检查

您可能已经注意到我们使用 ESLint 来强制执行编码标准。

在提交更改之前,要验证代码样式是否正确,请运行

终端
pnpm lint
您可以使用 pnpm lint --fix 来修复大多数样式更改。
如果仍然有错误,您必须手动纠正它们。

文档

如果您要添加新功能、重构或以任何其他方式更改 Nuxt 的行为,您可能需要记录这些更改。请在同一个 PR 中包含对文档的任何更改。您不必在第一次提交时编写文档(但请在您的 pull request 足够成熟后立即执行)。

请确保根据文档样式指南进行更改。

最终检查清单

在提交 PR 时,有一个简单的模板您必须填写。请在清单中勾选所有适当的“答案”。

文档指南

如果您发现我们可以改进文档或错误消息的领域,请打开一个 PR - 即使只是为了修复拼写错误!

请确保根据文档样式指南进行更改。

快速编辑

如果您发现拼写错误或想改写句子,您可以单击 社区 部分右侧的 编辑此页面 链接。

直接在 GitHub 界面中进行更改并打开 Pull Request。

较长的编辑

文档内容位于 nuxt/nuxt 仓库的 docs/ 目录中,并以 markdown 编写。

要在本地预览文档,请按照 nuxt/nuxt.com 仓库上的步骤操作。
我们建议您为 VS Code 安装 MDC 扩展

代码检查文档

文档使用 MarkdownLintcase police 进行代码检查,以保持文档的连贯性。

终端
pnpm lint:docs
你也可以运行 pnpm lint:docs:fix 来高亮显示并解决任何代码检查问题。

打开一个 PR(Pull Request)

请确保你的 PR 标题符合 conventional commits 指南。

PR 标题示例
docs: update the section about the nuxt.config.ts file