1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
// Remove when docs is refactored to use the new icons (see ./features.ts)
import React from "react";
import {
ArrowsExpandIcon,
BeakerIcon,
ChartBarIcon,
ChartPieIcon,
ChipIcon,
CloudUploadIcon,
FingerPrintIcon,
LightningBoltIcon,
RefreshIcon,
} from "@heroicons/react/outline";
import { IconType } from "../components/Icons";
export type Feature = {
name: string;
description: React.ReactNode;
Icon: IconType;
page: "all" | "home" | "docs";
};
export type Features = Array<Feature>;
const LEGACY_REPO_FEATURES: Features = [
{
name: "Incremental builds",
description: `Building once is painful enough, Turborepo will remember what you've built and skip the stuff that's already been computed.`,
Icon: RefreshIcon,
page: "all",
},
{
name: "Content-aware hashing",
description: `Turborepo looks at the contents of your files, not timestamps to figure out what needs to be built.`,
Icon: FingerPrintIcon,
page: "home",
},
{
name: "Parallel execution",
description: `Execute builds using every core at maximum parallelism without wasting idle CPUs.`,
Icon: LightningBoltIcon,
page: "all",
},
{
name: "Remote Caching",
description: `Share a remote build cache with your teammates and CI/CD for even faster builds.`,
Icon: CloudUploadIcon,
page: "all",
},
{
name: "Zero runtime overhead",
description: `Turborepo won’t interfere with your runtime code or touch your sourcemaps. `,
Icon: ChipIcon,
page: "all",
},
{
name: "Pruned subsets",
description: `Speed up PaaS deploys by generating a subset of your monorepo with only what's needed to build a specific target.`,
Icon: ChartPieIcon,
page: "all",
},
{
name: "Task pipelines",
description: `Define the relationships between your tasks and then let Turborepo optimize what to build and when.`,
Icon: ArrowsExpandIcon,
page: "all",
},
{
name: "Meets you where you’re at",
description: `Using Lerna? Keep your package publishing workflow and use Turborepo to turbocharge task running.`,
Icon: BeakerIcon,
page: "home",
},
{
name: `Profile in your browser`,
description: `Generate build profiles and import them in Chrome or Edge to understand which tasks are taking the longest.`,
Icon: ChartBarIcon,
page: "home",
},
];
export const LEGACY_REPO_DOCS_FEATURES = LEGACY_REPO_FEATURES.filter(
(f) => f.page === "docs" || f.page === "all"
);
export const LEGACY_REPO_HOME_FEATURES = LEGACY_REPO_FEATURES.filter(
(f) => f.page === "home" || f.page === "all"
);
export default LEGACY_REPO_FEATURES;
|