@teambit/pipelines.aspect-docs.builder 0.0.170 → 0.0.172
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/builder.mdx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_react2","_excluded","e","__esModule","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","_objectWithoutProperties","o","i","_objectWithoutPropertiesLoose","getOwnPropertySymbols","s","includes","propertyIsEnumerable","layoutProps","MDXLayout","MDXContent","_ref","components","props","mdx","mdxType","parentName","isMDXComponent"],"sourceRoot":"/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.pipelines_aspect-docs_builder@0.0.170","sources":["builder.mdx.js"],"sourcesContent":["\n// @ts-nocheck\nimport React from 'react'\nimport { mdx } from '@mdx-js/react'\n\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\n\n\n\nconst layoutProps = {\n \n};\nconst MDXLayout = \"wrapper\"\nexport default function MDXContent({\n components,\n ...props\n}) {\n return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n <h2>{`Background`}</h2>\n <p>{`Bit's build process is an extensible CI for independent components. It validates a component is not dependent on its context (the workspace), tests it, and generates all artifacts necessary for it to be viewed and consumed as an independent module (its distributable code, bundled preview, etc.).`}</p>\n <p>{`The Build Pipeline is an Environment Service responsible for sequencing and executing a component's Build Tasks. As mentioned earlier, these tasks are performed on a component only after it's been isolated from the rest of the workspace.`}</p>\n <p>{`A component's default series of Build Tasks is composed of tasks set by Bit and by its environment.`}</p>\n <h2>{`Isolated builds`}</h2>\n <p>{`Components authored in a Bit workspace are created to be completely portable, and thus independent. To address that, the build process starts by creating a component 'capsule' which is an isolated instance of a component, generated in a separate directory in your filesystem.`}</p>\n <p>{`As part of the capsule creation, all packages listed as dependencies of that component will be installed. This step is necessary to validate there are no dependency-graph issues (a component that is not totally isolated will be able to use packages installed in parent directories in your workspace, by other components. This will translate into a \"false positive\" result when testing for dependency-graph issues in a non-isolated location).`}</p>\n <h2>{`Incremental builds`}</h2>\n <p>{`When a component \"goes through\" the build pipeline, all of its dependencies are built as well. If a dependency has not changed since its last build, the build process will use its artifacts from the previous build (and will not process it again). This optimization to the build process supplements the \"innate optimization\" that naturally comes from developing (and building) independent components instead of a single monolithic codebase.`}</p>\n <h2>{`Environment-specific builds`}</h2>\n <p>{`Each Bit environment determines its own build pipeline. That means, a single workspace that uses multiple environments will run a different set of build tasks on different components depending on their associated environment. This is another Bit feature that enables seamless transitioning between different development environments, all in the same workspace. It also makes it much easier to integrate the Build Pipeline in your (remote) CI, as it only requires executing the build step - all other per-component build configurations are already set by the various environments being used.`}</p>\n <p>{`Since environments are extensible, so are the build pipelines configured by them.`}</p>\n <h2>{`Build task`}</h2>\n <p>{`An example of a build-task is `}<inlineCode parentName=\"p\">{`compile`}</inlineCode>{`, it's written in the compiler aspect and is running on each one of the capsules created by the build process. build-tasks in many cases generate artifacts, in this case, the compiler generates `}<inlineCode parentName=\"p\">{`dists`}</inlineCode>{` files and write them on the isolated capsules. There artifacts files are used later for example when creating packages.`}</p>\n <h2>{`Pipelines`}</h2>\n <p>{`There are three pipelines: `}<inlineCode parentName=\"p\">{`build`}</inlineCode>{`, `}<inlineCode parentName=\"p\">{`tag`}</inlineCode>{` and `}<inlineCode parentName=\"p\">{`snap`}</inlineCode>{`.`}</p>\n <ul>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit build`}</inlineCode>{` runs the build pipeline.`}</li>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit tag`}</inlineCode>{` runs the build pipeline and then the tag pipeline.`}</li>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit snap`}</inlineCode>{` runs the build pipeline and then the snap pipeline.`}</li>\n </ul>\n <h2>{`List Build Tasks`}</h2>\n <p>{`To get a list of all the tasks that will be running per pipeline on a specific component, run `}<inlineCode parentName=\"p\">{`bit build --list-tasks <id>`}</inlineCode>{`.\nHere is an example of the relevant part from the output:`}</p>\n <pre><code parentName=\"pre\" {...{}}>{`➜ bit build --list-tasks ui/tooltip\nTasks List\nid: teambit.design/ui/tooltip@0.0.347\nenvId: teambit.react/react\n\nBuild Pipeline Tasks:\nteambit.harmony/aspect:CoreExporter\nteambit.compilation/compiler:TSCompiler\nteambit.defender/tester:TestComponents\nteambit.pkg/pkg:PreparePackages\nteambit.pkg/pkg:PublishDryRun\nteambit.preview/preview:GeneratePreview\n\nTag Pipeline Tasks:\nteambit.harmony/application:build_ui_application\nteambit.pkg/pkg:PublishComponents\n\nSnap Pipeline Tasks:\n<N/A>\n`}</code></pre>\n <h2>{`Implementing Build Tasks`}</h2>\n <p>{`The `}<inlineCode parentName=\"p\">{`BuildTask`}</inlineCode>{` interface is a good start to understand how to implement a new build-task.\nWhen writing a build task, the `}<inlineCode parentName=\"p\">{`Network`}</inlineCode>{` object is passed and it includes the seeders capsules, as well as the entire graph including the dependencies.\nKeep in mind that the entire graph may contain components from other envs.`}</p>\n <p>{`Some tasks, such as, compiling in typescript and bundling with Webpack, need the entire graph.\nOthers, such as, Babel, need only the seeders. However, normally, the bundling is running after the compilation and it expects to have the dependencies compiled, so you might need the entire graph regardless.`}</p>\n <h2>{`Adding Tasks to a pipeline`}</h2>\n <p>{`There are two ways of adding tasks to the build pipeline.`}</p>\n <ol>\n <li parentName=\"ol\"><inlineCode parentName=\"li\">{`getBuildPipe()`}</inlineCode>{` method of the env. (or `}<inlineCode parentName=\"li\">{`getTagPipe()`}</inlineCode>{` and `}<inlineCode parentName=\"li\">{`getSnapPipe()`}</inlineCode>{`)`}</li>\n <li parentName=\"ol\">{`registering to the slot via `}<inlineCode parentName=\"li\">{`builder.registerBuildTask()`}</inlineCode>{`. (or `}<inlineCode parentName=\"li\">{`registerTagTask()`}</inlineCode>{` and `}<inlineCode parentName=\"li\">{`registerSnapTask()`}</inlineCode>{`)`}</li>\n </ol>\n <p>{`in the option #1, it's possible to determine the order. e.g. `}<inlineCode parentName=\"p\">{`getBuildPipe() { return [taskA, taskB, taskC]; }`}</inlineCode>{`\nin the option #2, the register happens once the extension is loaded, so there is no way to put\none task before/after another task as of now.`}</p>\n <h2>{`Sequencing the build tasks`}</h2>\n <p>{`The Build Pipeline takes into consideration the following factors when deciding the order of which to execute each task:`}</p>\n <ul>\n <li parentName=\"ul\"><strong parentName=\"li\">{`Location`}</strong>{`: A task can be executed either at the start or end of the build pipeline. This can be explicitly configured by the task itself.`}</li>\n <li parentName=\"ul\"><strong parentName=\"li\">{`Dependencies`}</strong>{`: A task can depend on other tasks. That means, the dependencies must be completed successfully for all envs before this task starts. The dependencies are applicable inside a location and not across locations. This is configured by the task itself.`}</li>\n <li parentName=\"ul\"><strong parentName=\"li\">{`An environment's list of build tasks`}</strong>{`: This is the array of tasks as it is defined by an environment`}</li>\n </ul>\n <h2>{`Executing the pipelines`}</h2>\n <p>{`Commands that trigger the build pipeline:`}</p>\n <ul>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit build`}</inlineCode>{` - runs the build pipeline on your local machine, for the entire workspace. The output data will not persist. - That is most often used for testing and debugging the build process.`}</li>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit tag`}</inlineCode>{` - runs the tag pipeline in addition to the build pipeline, before creating a new component release version. The output data will persist.`}</li>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit snap`}</inlineCode>{` - runs the snap pipeline in addition to the build pipeline. The output data will persist.`}</li>\n </ul>\n <p>{`Build pipelines are determined by the environments in use. That means, in order to override the default pipeline, we need to create a new environment extension or modify an existing one.`}</p>\n <p>{`The example task below, shown being used by a customized environment, prints out the component name of every component handled by it. In addition to that, the task returns the component name as custom metadata to be logged and/or stored in the component tagged version. `}<a parentName=\"p\" {...{\n \"href\": \"https://github.com/teambit/harmony-build-examples\"\n }}>{`See a demo project here`}</a>{`.`}</p>\n <blockquote>\n <p parentName=\"blockquote\">{`Information returned by a build task will only persist if the build-pipeline was triggered by the 'hard-tag' command (`}<inlineCode parentName=\"p\">{`bit tag <component-id>`}</inlineCode>{`).`}</p>\n </blockquote>\n <pre><code parentName=\"pre\" {...{\n \"className\": \"language-ts\",\n \"metastring\": \"title=\\\"print-cmp-name-task.ts\\\"\",\n \"title\": \"\\\"print-cmp-name-task.ts\\\"\"\n }}>{`import { BuildTask, BuildContext, BuiltTaskResult, ComponentResult } from '@teambit/builder';\n\n// A task is an implementation of 'BuildTask' provided by the 'builder' aspect\nexport class PrintCmpNameTask implements BuildTask {\n // The constructor leaves these properties up to the hands of the environment using this task\n constructor(\n readonly aspectId: string,\n readonly name: string\n ) {}\n\n // This is where the task logic is placed. It will be executed by the build pipeline\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const componentsResults: ComponentResult[] = [];\n\n // Go through every isolated component instance\n context.capsuleNetwork.seedersCapsules.forEach((capsule) => {\n console.log(\\`The current component name is: \\${capsule.component.id.name}\\`);\n\n componentsResults.push({\n component: capsule.component,\n metadata: { customProp: capsule.component.id.name },\n });\n });\n return {\n // An array of component objects, enriched with additional data produced by the task\n componentsResults,\n };\n }\n}\n`}</code></pre>\n <pre><code parentName=\"pre\" {...{\n \"className\": \"language-ts\",\n \"metastring\": \"title=\\\"customized-react.extension.ts\\\"\",\n \"title\": \"\\\"customized-react.extension.ts\\\"\"\n }}>{`import { EnvsMain, EnvsAspect } from '@teambit/envs';\nimport { ReactAspect, ReactMain } from '@teambit/react';\n\n// Import the task\nimport { PrintCmpNameTask } from './print-cmp-name-task';\n\nexport class CustomReact {\n constructor(private react: ReactMain) {}\n\n static dependencies: any = [EnvsAspect, ReactAspect];\n\n static async provider([envs, react]: [EnvsMain, ReactMain]) {\n // Get the environment's default build pipeline\n const reactPipe = react.env.getBuildPipe();\n\n // Add the custom task to the end of the build tasks sequence.\n // Provide the task with the component ID of the extension using it.\n // Provide the ask with a name.\n const tasks = [...reactPipe, new PrintCompTask('extensions/custom-react', 'PrintCmpNameTask')];\n\n // Create a new environment by merging these configurations with the env's default ones\n const customReactEnv = react.compose([react.overrideBuildPipe(tasks)]);\n\n // register the extension as an environment\n envs.registerEnv(customReactEnv);\n return new CustomReact(react);\n }\n}\n`}</code></pre>\n <h2>{`Positioning a build task in the pipeline`}</h2>\n <p>{`A build task is positioned in the build pipeline sequence either by overriding the entire `}<em parentName=\"p\">{`customizable`}</em>{` pipeline or, by registering it to a location in the pipeline using the designated builder slot.`}</p>\n <h3>{`Override the build pipeline sequence`}</h3>\n <p>{`This methodology leaves the task completely agnostic as to its position in the build pipeline. Instead, the task position is determined by the environment using the `}<inlineCode parentName=\"p\">{`getBuildPipe`}</inlineCode>{` Environment Handler.`}</p>\n <p>{`The example above shows the React environment `}<inlineCode parentName=\"p\">{`overrideBuildPipe`}</inlineCode>{` method being used to override its default pipeline. This method uses the `}<inlineCode parentName=\"p\">{`getBuildPipe()`}</inlineCode>{` Environment Handler, internally.`}</p>\n <h3>{`Append to the start or end of the pipeline, in relation to other tasks`}</h3>\n <p>{`This methodology places the task at the start or end of the build pipeline sequence, and lists all other tasks needed to run successfully before it is executed.`}</p>\n <p>{`Example:`}</p>\n <pre><code parentName=\"pre\" {...{\n \"className\": \"language-ts\",\n \"metastring\": \"title=\\\"print-cmp-name-task.ts\\\"\",\n \"title\": \"\\\"print-cmp-name-task.ts\\\"\"\n }}>{`import { BuildTask, BuildContext, BuiltTaskResult, ComponentResult } from '@teambit/builder';\n\nexport class PrintCmpNameTask implements BuildTask {\n constructor(\n readonly aspectId: string,\n readonly name: string\n ) {}\n\n // Place the task at the end of the build pipeline\n readonly location = 'end';\n\n // Run this task only after the '@teambit/preview' task is completed successfully\n readonly dependencies = ['@teambit/preview'];\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const componentsResults: ComponentResult[] = [];\n context.capsuleNetwork.seedersCapsules.forEach((capsule) => {\n console.log(\\`The current component name is: \\${capsule.component.id.name}\\`);\n\n componentsResults.push({\n component: capsule.component,\n metadata: { customProp: capsule.component.id.name },\n });\n });\n return {\n componentsResults,\n };\n }\n}\n`}</code></pre>\n <pre><code parentName=\"pre\" {...{\n \"className\": \"language-ts\",\n \"metastring\": \"title=\\\"customized-react.extension.ts\\\"\",\n \"title\": \"\\\"customized-react.extension.ts\\\"\"\n }}>{`import { EnvsMain, EnvsAspect } from '@teambit/envs';\nimport { ReactAspect, ReactMain } from '@teambit/react';\nimport { BuilderMain } from '@teambit/builder';\n\n// Import the task (in reality, it should be an independent component)\nimport { PrintCmpNameTask } from './print-cmp-name-task';\n\nexport class CustomReact {\n constructor(private react: ReactMain) {}\n\n static dependencies: any = [EnvsAspect, ReactAspect];\n\n // Inject the builder\n static async provider([envs, react, builder]: [EnvsMain, ReactMain, BuilderMain]) {\n // Register this task using the registration slot, made available by the 'builder'.\n // Here, the environment has no say in the positioning of the task\n builder.registerBuildTasks([new ExampleTask('extensions/custom-react', 'PrintCmpNameTask')]);\n\n const customReactEnv = react.compose([]);\n\n envs.registerEnv(customReactEnv);\n return new CustomReact(react);\n }\n}\n`}</code></pre>\n <h2>{`A build task anatomy`}</h2>\n <ul>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`aspectId`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`aspectId: string`}</inlineCode><br />{`\nThe component ID of the environment using this task.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`name`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`name: string`}</inlineCode>{` `}<br />{`\nA name for this task. Only alphanumerical characters are allowed. PascalCase should be used as a convention.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`location`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`location?: 'start' | 'end'`}</inlineCode>{` `}<br />{`\nThe section of the build-pipeline to which to append this task.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`dependencies`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`dependencies?: string[]`}</inlineCode>{` `}<br />{`\nAn list of tasks that must be completed before this task gets executed. `}<br />{`\nFor example `}<inlineCode parentName=\"p\">{`dependencies = ['@teambit/preview']`}</inlineCode>{`.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`execute`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`execute(context: BuildContext): Promise<BuiltTaskResult>`}</inlineCode>{` `}<br />{`\nThe execute method is where all the task logic is placed.`}</p>\n <ul parentName=\"li\">\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`context`}</strong>{` (argument) `}<br />{`\n`}<inlineCode parentName=\"p\">{`context: BuildContext`}</inlineCode>{` `}<br />{`\nThe context of the build pipeline. Use this object (provided by the build pipeline) to get information regarding all components handled by the build pipeline. `}<br /><br />{`\nFor example, `}<inlineCode parentName=\"p\">{`context.capsuleNetwork.seedersCapsules`}</inlineCode>{` are models representing isolated instances of components handled by the build pipeline. These isolated instances are independent projects, generated in your local filesystem (by the build pipeline).`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`return`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`Promise<BuiltTaskResult>`}</inlineCode>{` `}<br />{`\nA `}<inlineCode parentName=\"p\">{`context`}</inlineCode>{` method returns an object with data regarding the build task process, additional data regarding the components handled by the task and, if available, data regarding the different artifacts generated by this task.`}<br />{`\nThe returned object has the following attributes:`}</p>\n <ul parentName=\"li\">\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`componentsResults`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`componentsResults: ComponentResult[]`}</inlineCode>{`\nAn array of objects, each containing an instance of an object handled the task and additional information regarding the process and the component itself.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`component`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`component: Component`}</inlineCode>{` `}<br />{`\nAn instance of the component handled by the task (see the above task example).`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`metadata`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`metadata?: { [key: string]: Serializable }`}</inlineCode>{` `}<br />{`\nComponent metadata generated during the build task.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`errors`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`errors?: Array<Error | string>`}</inlineCode>{` `}<br />{`\nBuild task errors. A task returning errors will abort the build pipeline and log the returned errors.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`warnings`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`warnings?: string[]`}</inlineCode>{` `}<br />{`\nwarnings generated throughout the build task.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`startTime`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`startTime?: number`}</inlineCode>{` `}<br />{`\nA timestamp (in milliseconds) of when the task started`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`endTime`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`endTime?: number`}</inlineCode>{` `}<br />{`\nA timestamp (in milliseconds) of when the task ended`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`artifacts`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`artifacts?: ArtifactDefinition[]`}</inlineCode>{` `}<br />{`\nAn array of artifact definitions to generate after a successful build`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`name`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`name: string`}</inlineCode>{` `}<br />{`\nThe name of the artifact. `}<br />{`\nFor example, a project might utilize two different artifacts for the same typescript compiler, one that generates ES5 files and another for ES6. This prop helps to distinguish between the two.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`generatedBy`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`generatedBy?: string;`}</inlineCode>{` `}<br />{`\nId of the component that generated this artifact.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`description`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`description?: string`}</inlineCode>{` `}<br />{`\nA description of the artifact. `}<br /></p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`globPatterns`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`globPatterns: string[]`}</inlineCode>{` `}<br />{`\nGlob patterns of files to include upon artifact creation. Minimatch is used to match the patterns. `}<br />{`\nFor example, `}<inlineCode parentName=\"p\">{`['*.ts', '!foo.ts']`}</inlineCode>{` matches all ts files but ignores `}<inlineCode parentName=\"p\">{`foo.ts`}</inlineCode>{`.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`rootDir`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`rootDir?: string`}</inlineCode>{` `}<br />{`\nDefines the root directory of the artifacts in the capsule file system. The rootDir must be unique for every artifact, otherwise data might be overridden.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`dirPrefix`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`dirPrefix?: string`}</inlineCode>{` `}<br />{`\nAdds a directory prefix for all artifact files.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`context`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`context?: 'component' | 'env'`}</inlineCode>{` `}<br />{`\nDetermine the context of the artifact. The default artifact context is `}<inlineCode parentName=\"p\">{`component`}</inlineCode>{`. `}<inlineCode parentName=\"p\">{`env`}</inlineCode>{` is useful when the same file is generated for all components, for example, a \"preview\" task may create the same webpack file for all components of that env.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`storageResolver`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`storageResolver?: string`}</inlineCode>{` `}<br />{`\nUsed to replace the location of the stored artifacts. The default resolver persists artifacts on scope (that's not recommended for large files).`}</p>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`preBuild`}</strong>{` (advanced) `}<br />{`\n`}<inlineCode parentName=\"p\">{`preBuild?(context: BuildContext): Promise<void>`}</inlineCode>{` `}<br />{`\nRuns before the build pipeline has started. This method should only be used when preparations are needed to be done on all environments before the build starts.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`postBuild`}</strong>{` (advanced) `}<br />{`\n`}<inlineCode parentName=\"p\">{`postBuild?(context: BuildContext, tasksResults: TaskResultsList): Promise<void>`}</inlineCode>{` `}<br />{`\nRuns after the dependencies were completed for all environments.`}</p>\n </li>\n </ul>\n </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_react2","_excluded","e","__esModule","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","_objectWithoutProperties","o","i","_objectWithoutPropertiesLoose","getOwnPropertySymbols","s","includes","propertyIsEnumerable","layoutProps","MDXLayout","MDXContent","_ref","components","props","mdx","mdxType","parentName","isMDXComponent"],"sourceRoot":"/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.pipelines_aspect-docs_builder@0.0.172","sources":["builder.mdx.js"],"sourcesContent":["\n// @ts-nocheck\nimport React from 'react'\nimport { mdx } from '@mdx-js/react'\n\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\n\n\n\nconst layoutProps = {\n \n};\nconst MDXLayout = \"wrapper\"\nexport default function MDXContent({\n components,\n ...props\n}) {\n return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n <h2>{`Background`}</h2>\n <p>{`Bit's build process is an extensible CI for independent components. It validates a component is not dependent on its context (the workspace), tests it, and generates all artifacts necessary for it to be viewed and consumed as an independent module (its distributable code, bundled preview, etc.).`}</p>\n <p>{`The Build Pipeline is an Environment Service responsible for sequencing and executing a component's Build Tasks. As mentioned earlier, these tasks are performed on a component only after it's been isolated from the rest of the workspace.`}</p>\n <p>{`A component's default series of Build Tasks is composed of tasks set by Bit and by its environment.`}</p>\n <h2>{`Isolated builds`}</h2>\n <p>{`Components authored in a Bit workspace are created to be completely portable, and thus independent. To address that, the build process starts by creating a component 'capsule' which is an isolated instance of a component, generated in a separate directory in your filesystem.`}</p>\n <p>{`As part of the capsule creation, all packages listed as dependencies of that component will be installed. This step is necessary to validate there are no dependency-graph issues (a component that is not totally isolated will be able to use packages installed in parent directories in your workspace, by other components. This will translate into a \"false positive\" result when testing for dependency-graph issues in a non-isolated location).`}</p>\n <h2>{`Incremental builds`}</h2>\n <p>{`When a component \"goes through\" the build pipeline, all of its dependencies are built as well. If a dependency has not changed since its last build, the build process will use its artifacts from the previous build (and will not process it again). This optimization to the build process supplements the \"innate optimization\" that naturally comes from developing (and building) independent components instead of a single monolithic codebase.`}</p>\n <h2>{`Environment-specific builds`}</h2>\n <p>{`Each Bit environment determines its own build pipeline. That means, a single workspace that uses multiple environments will run a different set of build tasks on different components depending on their associated environment. This is another Bit feature that enables seamless transitioning between different development environments, all in the same workspace. It also makes it much easier to integrate the Build Pipeline in your (remote) CI, as it only requires executing the build step - all other per-component build configurations are already set by the various environments being used.`}</p>\n <p>{`Since environments are extensible, so are the build pipelines configured by them.`}</p>\n <h2>{`Build task`}</h2>\n <p>{`An example of a build-task is `}<inlineCode parentName=\"p\">{`compile`}</inlineCode>{`, it's written in the compiler aspect and is running on each one of the capsules created by the build process. build-tasks in many cases generate artifacts, in this case, the compiler generates `}<inlineCode parentName=\"p\">{`dists`}</inlineCode>{` files and write them on the isolated capsules. There artifacts files are used later for example when creating packages.`}</p>\n <h2>{`Pipelines`}</h2>\n <p>{`There are three pipelines: `}<inlineCode parentName=\"p\">{`build`}</inlineCode>{`, `}<inlineCode parentName=\"p\">{`tag`}</inlineCode>{` and `}<inlineCode parentName=\"p\">{`snap`}</inlineCode>{`.`}</p>\n <ul>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit build`}</inlineCode>{` runs the build pipeline.`}</li>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit tag`}</inlineCode>{` runs the build pipeline and then the tag pipeline.`}</li>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit snap`}</inlineCode>{` runs the build pipeline and then the snap pipeline.`}</li>\n </ul>\n <h2>{`List Build Tasks`}</h2>\n <p>{`To get a list of all the tasks that will be running per pipeline on a specific component, run `}<inlineCode parentName=\"p\">{`bit build --list-tasks <id>`}</inlineCode>{`.\nHere is an example of the relevant part from the output:`}</p>\n <pre><code parentName=\"pre\" {...{}}>{`➜ bit build --list-tasks ui/tooltip\nTasks List\nid: teambit.design/ui/tooltip@0.0.347\nenvId: teambit.react/react\n\nBuild Pipeline Tasks:\nteambit.harmony/aspect:CoreExporter\nteambit.compilation/compiler:TSCompiler\nteambit.defender/tester:TestComponents\nteambit.pkg/pkg:PreparePackages\nteambit.pkg/pkg:PublishDryRun\nteambit.preview/preview:GeneratePreview\n\nTag Pipeline Tasks:\nteambit.harmony/application:build_ui_application\nteambit.pkg/pkg:PublishComponents\n\nSnap Pipeline Tasks:\n<N/A>\n`}</code></pre>\n <h2>{`Implementing Build Tasks`}</h2>\n <p>{`The `}<inlineCode parentName=\"p\">{`BuildTask`}</inlineCode>{` interface is a good start to understand how to implement a new build-task.\nWhen writing a build task, the `}<inlineCode parentName=\"p\">{`Network`}</inlineCode>{` object is passed and it includes the seeders capsules, as well as the entire graph including the dependencies.\nKeep in mind that the entire graph may contain components from other envs.`}</p>\n <p>{`Some tasks, such as, compiling in typescript and bundling with Webpack, need the entire graph.\nOthers, such as, Babel, need only the seeders. However, normally, the bundling is running after the compilation and it expects to have the dependencies compiled, so you might need the entire graph regardless.`}</p>\n <h2>{`Adding Tasks to a pipeline`}</h2>\n <p>{`There are two ways of adding tasks to the build pipeline.`}</p>\n <ol>\n <li parentName=\"ol\"><inlineCode parentName=\"li\">{`getBuildPipe()`}</inlineCode>{` method of the env. (or `}<inlineCode parentName=\"li\">{`getTagPipe()`}</inlineCode>{` and `}<inlineCode parentName=\"li\">{`getSnapPipe()`}</inlineCode>{`)`}</li>\n <li parentName=\"ol\">{`registering to the slot via `}<inlineCode parentName=\"li\">{`builder.registerBuildTask()`}</inlineCode>{`. (or `}<inlineCode parentName=\"li\">{`registerTagTask()`}</inlineCode>{` and `}<inlineCode parentName=\"li\">{`registerSnapTask()`}</inlineCode>{`)`}</li>\n </ol>\n <p>{`in the option #1, it's possible to determine the order. e.g. `}<inlineCode parentName=\"p\">{`getBuildPipe() { return [taskA, taskB, taskC]; }`}</inlineCode>{`\nin the option #2, the register happens once the extension is loaded, so there is no way to put\none task before/after another task as of now.`}</p>\n <h2>{`Sequencing the build tasks`}</h2>\n <p>{`The Build Pipeline takes into consideration the following factors when deciding the order of which to execute each task:`}</p>\n <ul>\n <li parentName=\"ul\"><strong parentName=\"li\">{`Location`}</strong>{`: A task can be executed either at the start or end of the build pipeline. This can be explicitly configured by the task itself.`}</li>\n <li parentName=\"ul\"><strong parentName=\"li\">{`Dependencies`}</strong>{`: A task can depend on other tasks. That means, the dependencies must be completed successfully for all envs before this task starts. The dependencies are applicable inside a location and not across locations. This is configured by the task itself.`}</li>\n <li parentName=\"ul\"><strong parentName=\"li\">{`An environment's list of build tasks`}</strong>{`: This is the array of tasks as it is defined by an environment`}</li>\n </ul>\n <h2>{`Executing the pipelines`}</h2>\n <p>{`Commands that trigger the build pipeline:`}</p>\n <ul>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit build`}</inlineCode>{` - runs the build pipeline on your local machine, for the entire workspace. The output data will not persist. - That is most often used for testing and debugging the build process.`}</li>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit tag`}</inlineCode>{` - runs the tag pipeline in addition to the build pipeline, before creating a new component release version. The output data will persist.`}</li>\n <li parentName=\"ul\"><inlineCode parentName=\"li\">{`bit snap`}</inlineCode>{` - runs the snap pipeline in addition to the build pipeline. The output data will persist.`}</li>\n </ul>\n <p>{`Build pipelines are determined by the environments in use. That means, in order to override the default pipeline, we need to create a new environment extension or modify an existing one.`}</p>\n <p>{`The example task below, shown being used by a customized environment, prints out the component name of every component handled by it. In addition to that, the task returns the component name as custom metadata to be logged and/or stored in the component tagged version. `}<a parentName=\"p\" {...{\n \"href\": \"https://github.com/teambit/harmony-build-examples\"\n }}>{`See a demo project here`}</a>{`.`}</p>\n <blockquote>\n <p parentName=\"blockquote\">{`Information returned by a build task will only persist if the build-pipeline was triggered by the 'hard-tag' command (`}<inlineCode parentName=\"p\">{`bit tag <component-id>`}</inlineCode>{`).`}</p>\n </blockquote>\n <pre><code parentName=\"pre\" {...{\n \"className\": \"language-ts\",\n \"metastring\": \"title=\\\"print-cmp-name-task.ts\\\"\",\n \"title\": \"\\\"print-cmp-name-task.ts\\\"\"\n }}>{`import { BuildTask, BuildContext, BuiltTaskResult, ComponentResult } from '@teambit/builder';\n\n// A task is an implementation of 'BuildTask' provided by the 'builder' aspect\nexport class PrintCmpNameTask implements BuildTask {\n // The constructor leaves these properties up to the hands of the environment using this task\n constructor(\n readonly aspectId: string,\n readonly name: string\n ) {}\n\n // This is where the task logic is placed. It will be executed by the build pipeline\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const componentsResults: ComponentResult[] = [];\n\n // Go through every isolated component instance\n context.capsuleNetwork.seedersCapsules.forEach((capsule) => {\n console.log(\\`The current component name is: \\${capsule.component.id.name}\\`);\n\n componentsResults.push({\n component: capsule.component,\n metadata: { customProp: capsule.component.id.name },\n });\n });\n return {\n // An array of component objects, enriched with additional data produced by the task\n componentsResults,\n };\n }\n}\n`}</code></pre>\n <pre><code parentName=\"pre\" {...{\n \"className\": \"language-ts\",\n \"metastring\": \"title=\\\"customized-react.extension.ts\\\"\",\n \"title\": \"\\\"customized-react.extension.ts\\\"\"\n }}>{`import { EnvsMain, EnvsAspect } from '@teambit/envs';\nimport { ReactAspect, ReactMain } from '@teambit/react';\n\n// Import the task\nimport { PrintCmpNameTask } from './print-cmp-name-task';\n\nexport class CustomReact {\n constructor(private react: ReactMain) {}\n\n static dependencies: any = [EnvsAspect, ReactAspect];\n\n static async provider([envs, react]: [EnvsMain, ReactMain]) {\n // Get the environment's default build pipeline\n const reactPipe = react.env.getBuildPipe();\n\n // Add the custom task to the end of the build tasks sequence.\n // Provide the task with the component ID of the extension using it.\n // Provide the ask with a name.\n const tasks = [...reactPipe, new PrintCompTask('extensions/custom-react', 'PrintCmpNameTask')];\n\n // Create a new environment by merging these configurations with the env's default ones\n const customReactEnv = react.compose([react.overrideBuildPipe(tasks)]);\n\n // register the extension as an environment\n envs.registerEnv(customReactEnv);\n return new CustomReact(react);\n }\n}\n`}</code></pre>\n <h2>{`Positioning a build task in the pipeline`}</h2>\n <p>{`A build task is positioned in the build pipeline sequence either by overriding the entire `}<em parentName=\"p\">{`customizable`}</em>{` pipeline or, by registering it to a location in the pipeline using the designated builder slot.`}</p>\n <h3>{`Override the build pipeline sequence`}</h3>\n <p>{`This methodology leaves the task completely agnostic as to its position in the build pipeline. Instead, the task position is determined by the environment using the `}<inlineCode parentName=\"p\">{`getBuildPipe`}</inlineCode>{` Environment Handler.`}</p>\n <p>{`The example above shows the React environment `}<inlineCode parentName=\"p\">{`overrideBuildPipe`}</inlineCode>{` method being used to override its default pipeline. This method uses the `}<inlineCode parentName=\"p\">{`getBuildPipe()`}</inlineCode>{` Environment Handler, internally.`}</p>\n <h3>{`Append to the start or end of the pipeline, in relation to other tasks`}</h3>\n <p>{`This methodology places the task at the start or end of the build pipeline sequence, and lists all other tasks needed to run successfully before it is executed.`}</p>\n <p>{`Example:`}</p>\n <pre><code parentName=\"pre\" {...{\n \"className\": \"language-ts\",\n \"metastring\": \"title=\\\"print-cmp-name-task.ts\\\"\",\n \"title\": \"\\\"print-cmp-name-task.ts\\\"\"\n }}>{`import { BuildTask, BuildContext, BuiltTaskResult, ComponentResult } from '@teambit/builder';\n\nexport class PrintCmpNameTask implements BuildTask {\n constructor(\n readonly aspectId: string,\n readonly name: string\n ) {}\n\n // Place the task at the end of the build pipeline\n readonly location = 'end';\n\n // Run this task only after the '@teambit/preview' task is completed successfully\n readonly dependencies = ['@teambit/preview'];\n\n async execute(context: BuildContext): Promise<BuiltTaskResult> {\n const componentsResults: ComponentResult[] = [];\n context.capsuleNetwork.seedersCapsules.forEach((capsule) => {\n console.log(\\`The current component name is: \\${capsule.component.id.name}\\`);\n\n componentsResults.push({\n component: capsule.component,\n metadata: { customProp: capsule.component.id.name },\n });\n });\n return {\n componentsResults,\n };\n }\n}\n`}</code></pre>\n <pre><code parentName=\"pre\" {...{\n \"className\": \"language-ts\",\n \"metastring\": \"title=\\\"customized-react.extension.ts\\\"\",\n \"title\": \"\\\"customized-react.extension.ts\\\"\"\n }}>{`import { EnvsMain, EnvsAspect } from '@teambit/envs';\nimport { ReactAspect, ReactMain } from '@teambit/react';\nimport { BuilderMain } from '@teambit/builder';\n\n// Import the task (in reality, it should be an independent component)\nimport { PrintCmpNameTask } from './print-cmp-name-task';\n\nexport class CustomReact {\n constructor(private react: ReactMain) {}\n\n static dependencies: any = [EnvsAspect, ReactAspect];\n\n // Inject the builder\n static async provider([envs, react, builder]: [EnvsMain, ReactMain, BuilderMain]) {\n // Register this task using the registration slot, made available by the 'builder'.\n // Here, the environment has no say in the positioning of the task\n builder.registerBuildTasks([new ExampleTask('extensions/custom-react', 'PrintCmpNameTask')]);\n\n const customReactEnv = react.compose([]);\n\n envs.registerEnv(customReactEnv);\n return new CustomReact(react);\n }\n}\n`}</code></pre>\n <h2>{`A build task anatomy`}</h2>\n <ul>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`aspectId`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`aspectId: string`}</inlineCode><br />{`\nThe component ID of the environment using this task.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`name`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`name: string`}</inlineCode>{` `}<br />{`\nA name for this task. Only alphanumerical characters are allowed. PascalCase should be used as a convention.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`location`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`location?: 'start' | 'end'`}</inlineCode>{` `}<br />{`\nThe section of the build-pipeline to which to append this task.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`dependencies`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`dependencies?: string[]`}</inlineCode>{` `}<br />{`\nAn list of tasks that must be completed before this task gets executed. `}<br />{`\nFor example `}<inlineCode parentName=\"p\">{`dependencies = ['@teambit/preview']`}</inlineCode>{`.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`execute`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`execute(context: BuildContext): Promise<BuiltTaskResult>`}</inlineCode>{` `}<br />{`\nThe execute method is where all the task logic is placed.`}</p>\n <ul parentName=\"li\">\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`context`}</strong>{` (argument) `}<br />{`\n`}<inlineCode parentName=\"p\">{`context: BuildContext`}</inlineCode>{` `}<br />{`\nThe context of the build pipeline. Use this object (provided by the build pipeline) to get information regarding all components handled by the build pipeline. `}<br /><br />{`\nFor example, `}<inlineCode parentName=\"p\">{`context.capsuleNetwork.seedersCapsules`}</inlineCode>{` are models representing isolated instances of components handled by the build pipeline. These isolated instances are independent projects, generated in your local filesystem (by the build pipeline).`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`return`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`Promise<BuiltTaskResult>`}</inlineCode>{` `}<br />{`\nA `}<inlineCode parentName=\"p\">{`context`}</inlineCode>{` method returns an object with data regarding the build task process, additional data regarding the components handled by the task and, if available, data regarding the different artifacts generated by this task.`}<br />{`\nThe returned object has the following attributes:`}</p>\n <ul parentName=\"li\">\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`componentsResults`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`componentsResults: ComponentResult[]`}</inlineCode>{`\nAn array of objects, each containing an instance of an object handled the task and additional information regarding the process and the component itself.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`component`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`component: Component`}</inlineCode>{` `}<br />{`\nAn instance of the component handled by the task (see the above task example).`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`metadata`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`metadata?: { [key: string]: Serializable }`}</inlineCode>{` `}<br />{`\nComponent metadata generated during the build task.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`errors`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`errors?: Array<Error | string>`}</inlineCode>{` `}<br />{`\nBuild task errors. A task returning errors will abort the build pipeline and log the returned errors.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`warnings`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`warnings?: string[]`}</inlineCode>{` `}<br />{`\nwarnings generated throughout the build task.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`startTime`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`startTime?: number`}</inlineCode>{` `}<br />{`\nA timestamp (in milliseconds) of when the task started`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`endTime`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`endTime?: number`}</inlineCode>{` `}<br />{`\nA timestamp (in milliseconds) of when the task ended`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`artifacts`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`artifacts?: ArtifactDefinition[]`}</inlineCode>{` `}<br />{`\nAn array of artifact definitions to generate after a successful build`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`name`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`name: string`}</inlineCode>{` `}<br />{`\nThe name of the artifact. `}<br />{`\nFor example, a project might utilize two different artifacts for the same typescript compiler, one that generates ES5 files and another for ES6. This prop helps to distinguish between the two.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`generatedBy`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`generatedBy?: string;`}</inlineCode>{` `}<br />{`\nId of the component that generated this artifact.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`description`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`description?: string`}</inlineCode>{` `}<br />{`\nA description of the artifact. `}<br /></p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`globPatterns`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`globPatterns: string[]`}</inlineCode>{` `}<br />{`\nGlob patterns of files to include upon artifact creation. Minimatch is used to match the patterns. `}<br />{`\nFor example, `}<inlineCode parentName=\"p\">{`['*.ts', '!foo.ts']`}</inlineCode>{` matches all ts files but ignores `}<inlineCode parentName=\"p\">{`foo.ts`}</inlineCode>{`.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`rootDir`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`rootDir?: string`}</inlineCode>{` `}<br />{`\nDefines the root directory of the artifacts in the capsule file system. The rootDir must be unique for every artifact, otherwise data might be overridden.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`dirPrefix`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`dirPrefix?: string`}</inlineCode>{` `}<br />{`\nAdds a directory prefix for all artifact files.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`context`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`context?: 'component' | 'env'`}</inlineCode>{` `}<br />{`\nDetermine the context of the artifact. The default artifact context is `}<inlineCode parentName=\"p\">{`component`}</inlineCode>{`. `}<inlineCode parentName=\"p\">{`env`}</inlineCode>{` is useful when the same file is generated for all components, for example, a \"preview\" task may create the same webpack file for all components of that env.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`storageResolver`}</strong>{` `}<br />{`\n`}<inlineCode parentName=\"p\">{`storageResolver?: string`}</inlineCode>{` `}<br />{`\nUsed to replace the location of the stored artifacts. The default resolver persists artifacts on scope (that's not recommended for large files).`}</p>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`preBuild`}</strong>{` (advanced) `}<br />{`\n`}<inlineCode parentName=\"p\">{`preBuild?(context: BuildContext): Promise<void>`}</inlineCode>{` `}<br />{`\nRuns before the build pipeline has started. This method should only be used when preparations are needed to be done on all environments before the build starts.`}</p>\n </li>\n <li parentName=\"ul\">\n <p parentName=\"li\"><strong parentName=\"p\">{`postBuild`}</strong>{` (advanced) `}<br />{`\n`}<inlineCode parentName=\"p\">{`postBuild?(context: BuildContext, tasksResults: TaskResultsList): Promise<void>`}</inlineCode>{` `}<br />{`\nRuns after the dependencies were completed for all environments.`}</p>\n </li>\n </ul>\n </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.pipelines_aspect-docs_builder@0.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.pipelines_aspect-docs_builder@0.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.pipelines_aspect-docs_builder@0.0.172/dist/builder.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.pipelines_aspect-docs_builder@0.0.172/dist/builder.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/pipelines.aspect-docs.builder",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.172",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/pipelines/aspect-docs/builder",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.pipelines",
|
|
8
8
|
"name": "aspect-docs/builder",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.172"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"core-js": "^3.0.0",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@babel/runtime": "7.20.0",
|
|
23
23
|
"@types/testing-library__jest-dom": "5.9.5",
|
|
24
24
|
"@teambit/documenter.theme.theme-compositions": "4.1.1",
|
|
25
|
-
"@teambit/mdx.ui.mdx-layout": "1.0.
|
|
25
|
+
"@teambit/mdx.ui.mdx-layout": "1.0.11"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": "^16.8.0 || ^17.0.0",
|