prune
为目标软件包生成部分 monorepo。输出将被放置到名为 out 的目录中,其中包含以下内容:
¥Generate a partial monorepo for a target package. The output will be placed into a directory named out containing the following:
-
构建目标所需的所有内部包的完整源代码。
¥The full source code of all internal packages needed to build the target.
-
包含构建目标所需的原始锁文件子集的精简锁文件。
¥A pruned lockfile containing the subset of the original lockfile needed to build the target.
-
根
package.json的副本。¥A copy of the root
package.json.
示例
¥Example
从具有以下结构的仓库开始:
¥Starting with a repository with the following structure:
运行 turbo prune frontend 以在 out 目录中为 frontend 应用生成精简的工作区:
¥Run turbo prune frontend to generate a pruned workspace for the frontend application in an out directory:
选项
¥Options
--docker
默认为 false。
¥Defaults to false.
更改输出目录,使其更易于与 Docker 最佳实践和层缓存 一起使用。目录将包含:
¥Alter the output directory to make it easier to use with Docker best practices and layer caching. The directory will contain:
-
一个名为
json的文件夹,其中包含已精简工作区的package.json文件。¥A folder named
jsonwith the pruned workspace'spackage.jsonfiles. -
一个名为
full的文件夹,其中包含已精简工作区中构建目标所需的内部包的完整源代码。¥A folder named
fullwith the pruned workspace's full source code for the internal packages needed to build the target. -
包含构建目标所需的原始锁文件子集的精简锁文件。
¥A pruned lockfile containing the subset of the original lockfile needed to build the target.
使用与上述相同的示例,运行 turbo prune frontend --docker 将生成以下内容:
¥Using the same example from above, running turbo prune frontend --docker will generate the following:
--out-dir <path>
默认为 ./out。
¥Defaults to ./out.
自定义生成修剪输出的目录。
¥Customize the directory the pruned output is generated in.
--use-gitignore[=<bool>]
默认:true
¥Default: true
将文件复制到输出目录时,请考虑 .gitignore 文件。
¥Respect .gitignore file(s) when copying files to the output directory.
与 pnpm deploy 的比较
¥Comparison to pnpm deploy
虽然 turbo prune 和 pnpm deploy 都用于隔离 monorepo 中的包,但它们服务于不同的用途并产生不同的输出。
¥While both turbo prune and pnpm deploy are used to isolate packages in a monorepo, they serve different purposes and produce different outputs.
turbo prune 生成部分 monorepo,pnpm deploy 生成仅包含目标包内容的目录。
¥Where turbo prune generates a partial monorepo, pnpm deploy generates a directory that only contains the contents of the target package.
pnpm deploy 生成的目录包含一个独立的 node_modules 文件,其中包含硬链接的内部依赖。这会生成一个可移植的包,可以直接复制到服务器并使用,无需额外步骤。由于重点是生成独立的可部署包,因此不会保留仓库结构。
¥The pnpm deploy generated directory has a self-contained node_modules with hard linked internal dependencies.
This results in a portable package that can be directly copied to a server and used without additional steps.
The repository structure is not retained, as the focus is on producing a standalone deployable package.