Rush Stack商店博客活动
跳至主要内容

设置新仓库

本教程将引导您完成将多个项目整合到新 Rush 多仓库中的过程。(如果您想查看基于这些步骤的完整示例,请查看 GitHub 上的 rush-example 仓库。)

在此示例中,假设我们有 3 个项目文件夹,如下所示

  • **my-app**: 一个 Web 应用程序
  • **my-controls**: 应用程序使用的控件库
  • **my-toolchain**: 用于编译其他项目的 NodeJS 构建工具

最初,这些项目中的每一个都在它自己的文件夹中。它们使用如下所示的繁琐流程进行构建

~$ cd my-toolchain
~/my-toolchain$ npm run build
~/my-toolchain$ npm link
~/my-toolchain$ cd ../my-controls
~/my-controls$ npm link my-toolchain
~/my-controls$ npm run build
~/my-controls$ npm link
~/my-controls$ cd ../my-app
~/my-app$ npm link my-toolchain
~/my-app$ npm link my-controls
~/my-app$ npm run build

让我们 Rushify 这些项目!

步骤 1: 检查您的 Rush 版本

在开始之前,请确保您已全局安装了最新的 Rush 版本

~$ npm install -g @microsoft/rush

注意:如果该命令由于您的用户帐户没有权限访问 NPM 的全局文件夹而失败,您可能需要 修复您的 NPM 配置

步骤 2: 使用 "rush init" 初始化您的仓库

假设您已经创建了一个空的 GitHub 仓库,我们将把这些项目复制到其中。将您的仓库克隆到某个地方,然后运行 rush init 生成 Rush 的配置文件

~$ git clone https://github.com/my-team/my-repo
~$ cd my-repo
~/my-repo$ rush init

它将生成以下文件(有关更多信息,请参阅 配置文件参考

文件作用
rush.jsonrush.json
Rush 的主要配置文件.gitattributes
(如果您没有使用 Git,请删除此文件。)
告诉 Git 不要对 shrinkwrap 文件执行合并操作,因为这是不安全的。.gitattributes
.gitignore
告诉 Git 不要跟踪 Rush 创建的临时文件。.github/workflows/ci.yml
(如果您没有使用 GitHub Actions,请删除此文件。)
配置 GitHub Actions 服务以使用 Rush 执行 PR 构建。common/config/rush/.npmrc
Rush 使用此文件来配置包注册表,无论包管理器是 PNPM、NPM 还是 Yarn。common/config/rush/.npmrc-publish
Rush 在发布 NPM 包时使用此文件,而不是 **.npmrc**。common/config/rush/.pnpmfile.cjs
(如果您选择使用 NPM 或 Yarn 而不是 PNPM,请删除此文件。)
用于解决依赖项中 package.json 文件存在错误的问题。common/config/rush/artifactory.json
(如果您没有使用 Artifactory,请删除此文件。)
用于为配置 Artifactory 凭据定义自定义 rush setup 体验。common/config/rush/build-cache.json
用于配置 Rush 的云构建缓存。common/config/rush/command-line.json
您可以使用它来定义自定义命令/参数,这些命令/参数将成为 Rush 命令行的一部分。common/config/rush/common-versions.json
用于指定影响 Rush 仓库中所有项目的 NPM 依赖项版本选择。common/config/rush/experiments.json
用于启用 Rush 的实验性功能。common/config/rush/pnpm-config.json
用于配置 PNPM 包管理器在 rush installrush update 期间的行为方式。common/config/rush/rush-plugins.json
用于为 Rush 启用插件。common/config/rush/version-policies.json
用于定义高级发布配置。git-hooks/commit-msg.sample

用于定义将由 rush install 激活的 Git 钩子的模板。

注意:如果您的分支中已经存在任何这些文件,rush init 将发出警告,并且 **不会** 覆盖现有文件。

~/my-repo$ git add .
~/my-repo$ git commit -m "Initialize Rush repo"

接下来,将生成的文件添加到 Git 并提交到您的分支

步骤 3: 自定义您的配置

模板文件包含大量文档和注释的示例片段。我们建议您查看它们,以熟悉基本选项和功能。

  • 您可以随时更改选项,但您应该提前考虑 **rush.json** 中的一些设置

  • **选择包管理器**: 模板默认使用 PNPM,但您也可以使用 NPM 或 Yarn。有关指导,请参阅 NPM vs PNPM vs Yarn

  • **检查您的 Rush 版本**: 确保您的 rushVersion 设置是最新版本,如 NPM 注册表 中所示。

  • **检查其他版本字段**: 还应检查是否对任何其他适用的字段使用最新稳定版本,例如 pnpmVersionnpmVersionyarnVersionnodeSupportedVersionRange

  • **决定是否使用“类别文件夹”模型**: 参阅 **rush.json** 中有关 projectFolderMinDepthprojectFolderMaxDepth 的注释,并计划如何在多仓库中组织项目文件夹