---
title: "框架"
description: "关于对框架仓库贡献的一些具体要点。"
canonical_url: "https://nuxt.zhcndoc.com/docs/3.x/community/framework-contribution"
---
# 框架

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

阅读完[通用贡献指南](https://nuxt.zhcndoc.com/docs/3.x/community/contribution)后，以下是对 [`nuxt/nuxt`](https://github.com/nuxt/nuxt) 仓库贡献时需要注意的一些具体事项。

## Monorepo 指南

- `packages/kit`：用来编写 Nuxt 模块的工具包，发布为 [`@nuxt/kit`](https://npmjs.com/package/@nuxt/kit)。
- `packages/nuxt`：Nuxt 核心，发布为 [`nuxt`](https://npmjs.com/package/nuxt)。
- `packages/schema`：跨版本的 Nuxt 类型定义和默认值，发布为 [`@nuxt/schema`](https://npmjs.com/package/@nuxt/schema)。
- `packages/rspack`：Nuxt 的 [Rspack](https://rspack.dev) 打包器，发布为 [`@nuxt/rspack-builder`](https://npmjs.com/package/@nuxt/rspack-builder)。
- `packages/vite`：Nuxt 的 [Vite](https://vite.zhcndoc.com) 打包器，发布为 [`@nuxt/vite-builder`](https://npmjs.com/package/@nuxt/vite-builder)。
- `packages/webpack`：Nuxt 的 [webpack](https://webpack.js.org) 打包器，发布为 [`@nuxt/webpack-builder`](https://npmjs.com/package/@nuxt/webpack-builder)。

## 设置

要为 Nuxt 贡献代码，您需要搭建本地开发环境。

1. 将 [`nuxt/nuxt`](https://github.com/nuxt/nuxt) 仓库 [Fork](https://help.github.com/articles/fork-a-repo) 到您自己的 GitHub 账号，然后将其 [clone](https://help.github.com/articles/cloning-a-repository) 到本地设备。
2. 确保使用最新的 [Node.js](https://node.zhcndoc.com/en)（20.x）。
3. 启用 [Corepack](https://github.com/nodejs/corepack)，以便使用 `pnpm` 和 `yarn`
   ```bash [Terminal]
   corepack enable
   ```
4. 使用 pnpm 安装依赖：
   ```bash [Terminal]
   pnpm install --frozen-lockfile
   ```
   ::note
   如果您要添加依赖，请使用 `pnpm add`。 :br
   `pnpm-lock.yaml` 文件是所有 Nuxt 依赖的权威来源。
   ::
5. 激活被动开发系统
   ```bash [Terminal]
   pnpm dev:prepare
   ```
6. 切换到您可以工作并提交更改的分支：
   ```bash [Terminal]
   git checkout -b my-new-branch
   ```

然后，在提交拉取请求之前，请在 [playground](https://nuxt.zhcndoc.com/docs/3.x/community/framework-contribution#playground) 中测试您的更改，并对更改进行[测试](https://nuxt.zhcndoc.com/docs/3.x/community/framework-contribution#testing)。

### Playground

在处理拉取请求时，您可能想检查您的更改是否正常工作。

您可以修改 `playground/` 中的示例应用，并运行：

```bash [Terminal]
pnpm dev
```

::important
请确保不要将该示例提交至您的分支，但您可以把一些示例代码添加到您的 PR 描述中，这有助于审查者和其他 Nuxt 用户深入理解您构建的功能。
::

### 测试

每个新功能应对应一个单元测试（如果可能）。本仓库的 `test/` 目录目前仍在建设中，但请尽力根据已有示例创建新的测试。

在创建 PR 或标记其为准备审查之前，请确保所有测试通过：

```bash [Terminal]
pnpm test
```

### 代码规范

您可能已经注意到我们使用 ESLint 来强制执行代码规范。

在提交更改前，运行以下命令以验证代码样式是否正确：

```bash [Terminal]
pnpm lint
```

::note
您可以使用 `pnpm lint --fix` 来自动修复大部分样式问题。 :br
如果仍有错误，则需要手动修正。
::

### 文档

如果您新增功能、重构或以其他方式改变 Nuxt 的行为，您很可能需要更新文档。请在同一个 PR 中包含任何文档更改。您无需在第一次提交时写好文档（但请在您的拉取请求成熟后尽快补充文档）。

::important
请确保按照[文档风格指南](https://nuxt.zhcndoc.com/docs/3.x/community/contribution#documentation-style-guide)进行修改。
::

### 最终检查清单

提交 PR 时，您需要填写一个简单的模板。请勾选所有适当的选项。

## 文档指南

如果您发现文档或错误提示有改进空间，请务必提交 PR —— 即使只是修复一个拼写错误！

::important
请确保按照[文档风格指南](https://nuxt.zhcndoc.com/docs/3.x/community/contribution#documentation-style-guide)进行修改。
::

### 快速编辑

如果您发现拼写错误或想重新表达一句话，可以点击位于右侧 **社区** 区域的 **编辑此页** 链接。

在 GitHub 界面中直接修改并发起拉取请求。

### 长篇修改

文档内容位于 [nuxt/nuxt](https://github.com/nuxt/nuxt) 仓库的 `docs/` 目录内，采用 Markdown 编写。

::note
如需本地预览文档，请参阅 [nuxt/nuxt.com](https://github.com/nuxt/nuxt.com) 仓库中的步骤。
::

::note
我们推荐您安装 VS Code 的 [MDC 插件](https://marketplace.visualstudio.com/items?itemName=Nuxt.mdc)。
::

链接到其他文档页面时，请使用不带域名或版本段的相对路径：使用 `/docs/getting-started/installation`，而不是 `/docs/3.x/getting-started/installation`。nuxt.com 会插入构建该页面所用分支的版本段，因此同一个链接在每个版本中都能正确解析，并且文档更改可以在分支之间直接 cherry-pick，无需修改。只有当您有意链接到*其他*版本的文档时，才应写入版本段；在这种情况下，请使用完整 URL `https://nuxt.com/docs/4.x/getting-started/introduction`，以便在审查时明确表达意图。

### 文档代码规范检查

文档使用 [MarkdownLint](https://github.com/DavidAnson/markdownlint) 和 [case police](https://github.com/antfu/case-police) 进行规范检测，保持文档风格统一。

```bash [Terminal]
pnpm lint:docs
```

::note
您也可以运行 `pnpm lint:docs:fix` 来高亮并解决所有规范问题。
::

### 提交 PR

请确保您的 PR 标题符合 [conventional commits](https://www.conventionalcommits.org) 规范。

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


## Sitemap

See the full [sitemap](https://nuxt.zhcndoc.com/sitemap.md) for all pages.
