设置新仓库
本教程将引导您完成将多个项目整合到新 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.json | rush.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 install 和 rush 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 注册表 中所示。**检查其他版本字段**: 还应检查是否对任何其他适用的字段使用最新稳定版本,例如
pnpmVersion
、npmVersion
、yarnVersion
、nodeSupportedVersionRange
**决定是否使用“类别文件夹”模型**: 参阅 **rush.json** 中有关
projectFolderMinDepth
和projectFolderMaxDepth
的注释,并计划如何在多仓库中组织项目文件夹