Rush StackShopBlogEvents
Skip to main content

rushx

rushx 命令与 npm run 或者 pnpm run 类似,它会调用 package.json 文件中 "scripts" 字段中定义的 shell 脚本。任何额外的命令行参数都会传递给该 shell 脚本,这些参数不会经过任何验证。

例如在你的项目中:

<my project>/package.json

{
"name": "my-project",
"version": "0.0.0",
"scripts": {
"build": "rm -Rf lib && tsc",
"test": "jest"
}
}

如果你单独调用 rushx,它将会显示可用的命令:

用法:rushx [-h]
rushx [-q/--quiet] <命令> ...

可选参数:
-h, --help 展示帮助信息并退出。
-q, --quiet 隐藏 Rush 启动信息。

my-project 项目中可用的命令:
build: "rm -Rf lib && tsc"
test: "jest"

调用 rushx build 等同于运行 rm -Rf lib && tsc。添加的参数将会被直接添加到字符串的末尾,例如 rushx build --verbose 等同于 rm -Rf lib && tsc --verbose

使用 "rush" 还是 "rushx"?

rushxrush 这两个命令很容易混淆:

  • rush 调用一个通用的操作,它会影响整个仓库(“全局命令”)或者多个项目(“批量命令”)。这些命令应该被仔细设计。Rush 会强制对它们的参数进行验证和文档化。
  • rushx 为单个项目执行自定义操作。尽管一些命令用于实现批量命令,但是许多命令都是该项目开发人员独有的辅助脚本。Rush 并不严格验证这些命令。

为什么使用 "rushx" 而不是 "pnpm run" 或者 "npx"?

rushx 命令具有与 pnpm run 或者 npx 相似的功能,但是还有一些额外的好处:

  • 通过使用 Rush 版本选择器 来确定需要使用的工具链
  • 基于 Rush 的配置来准备 shell 环境
  • 实现了额外的验证