microsoft/rushstack

README

|   |
| :--- |
| https://rushstack.io/ |

Build Status  Open in Visual Studio Code

The home for various projects maintained by the Rush Stack community, whose mission is to develop reusable tooling for large scale TypeScript monorepos.

Documentation Links


What is Rush Stack? - learn about the mission behind these projects
API reference - browse API documentation for NPM packages
Zulip chat room - chat with the Rush Stack developers
Rush - a build orchestrator for large scale TypeScript monorepos
API Extractor - create .d.ts rollups and track your TypeScript API signatures
API Documenter - use TSDoc comments to publish an API documentation website

Related Repos


These GitHub repositories provide supplementary resources for Rush Stack:

rushstack-samples - a monoprepo with sample projects that illustrate various project setups, including how to use Heft with other popular JavaScript frameworks
rush-example - a minimal Rush repo that demonstrates the fundamentals of Rush without relying on any other Rush Stack tooling
rushstack-legacy - older projects that are still maintained but no longer actively developed

Published Packages


| Folder | Version | Changelog | Package |
|:--- |:--- |:--- |:--- |
| /apps/api-documenter| | changelog| @microsoft/api-documenter |
| /apps/api-extractor| | changelog| @microsoft/api-extractor |
| /apps/heft| | changelog| @rushstack/heft |
| /apps/lockfile-explorer| | changelog| @rushstack/lockfile-explorer |
| /apps/rundown| | changelog| @rushstack/rundown |
| /apps/rush| | changelog| @microsoft/rush |
| /apps/trace-import| | changelog| @rushstack/trace-import |
| /eslint/eslint-config| | changelog| @rushstack/eslint-config |
| /eslint/eslint-patch| | changelog| @rushstack/eslint-patch |
| /eslint/eslint-plugin| | changelog| @rushstack/eslint-plugin |
| /eslint/eslint-plugin-packlets| | changelog| @rushstack/eslint-plugin-packlets |
| /eslint/eslint-plugin-security| | changelog| @rushstack/eslint-plugin-security |
| /heft-plugins/heft-dev-cert-plugin| | changelog| @rushstack/heft-dev-cert-plugin |
| /heft-plugins/heft-jest-plugin| | changelog| @rushstack/heft-jest-plugin |
| /heft-plugins/heft-sass-plugin| | changelog| @rushstack/heft-sass-plugin |
| /heft-plugins/heft-serverless-stack-plugin| | changelog| @rushstack/heft-serverless-stack-plugin |
| /heft-plugins/heft-storybook-plugin| | changelog| @rushstack/heft-storybook-plugin |
| /heft-plugins/heft-webpack4-plugin| | changelog| @rushstack/heft-webpack4-plugin |
| /heft-plugins/heft-webpack5-plugin| | changelog| @rushstack/heft-webpack5-plugin |
| /libraries/api-extractor-model| | changelog| @microsoft/api-extractor-model |
| /libraries/debug-certificate-manager| | changelog| @rushstack/debug-certificate-manager |
| /libraries/heft-config-file| | changelog| @rushstack/heft-config-file |
| /libraries/load-themed-styles| | changelog| @microsoft/load-themed-styles |
| /libraries/localization-utilities| | changelog| @rushstack/localization-utilities |
| /libraries/module-minifier| | changelog| @rushstack/module-minifier |
| /libraries/node-core-library| | changelog| @rushstack/node-core-library |
| /libraries/package-deps-hash| | changelog| @rushstack/package-deps-hash |
| /libraries/rig-package| | changelog| @rushstack/rig-package |
| /libraries/rush-lib| | | @microsoft/rush-lib |
| /libraries/rush-sdk| | | @rushstack/rush-sdk |
| /libraries/stream-collator| | changelog| @rushstack/stream-collator |
| /libraries/terminal| | changelog| @rushstack/terminal |
| /libraries/tree-pattern| | changelog| @rushstack/tree-pattern |
| /libraries/ts-command-line| | changelog| @rushstack/ts-command-line |
| /libraries/typings-generator| | changelog| @rushstack/typings-generator |
| /libraries/worker-pool| | changelog| @rushstack/worker-pool |
| /rigs/heft-node-rig| | changelog| @rushstack/heft-node-rig |
| /rigs/heft-web-rig| | changelog| @rushstack/heft-web-rig |
| /rush-plugins/rush-amazon-s3-build-cache-plugin| | | @rushstack/rush-amazon-s3-build-cache-plugin |
| /rush-plugins/rush-azure-storage-build-cache-plugin| | | @rushstack/rush-azure-storage-build-cache-plugin |
| /rush-plugins/rush-serve-plugin| | changelog| @rushstack/rush-serve-plugin |
| /webpack/hashed-folder-copy-plugin| | changelog| @rushstack/hashed-folder-copy-plugin |
| /webpack/loader-load-themed-styles| | changelog| @microsoft/loader-load-themed-styles |
| /webpack/loader-raw-script| | changelog| @rushstack/loader-raw-script |
| /webpack/preserve-dynamic-require-plugin| | changelog| @rushstack/webpack-preserve-dynamic-require-plugin |
| /webpack/set-webpack-public-path-plugin| | changelog| @rushstack/set-webpack-public-path-plugin |
| /webpack/webpack-plugin-utilities| | changelog| @rushstack/webpack-plugin-utilities |
| /webpack/webpack4-localization-plugin| | changelog| @rushstack/webpack4-localization-plugin |
| /webpack/webpack4-module-minifier-plugin| | changelog| @rushstack/webpack4-module-minifier-plugin |
| /webpack/webpack5-load-themed-styles-loader| | changelog| @microsoft/webpack5-load-themed-styles-loader |
| /webpack/webpack5-localization-plugin| | changelog| @rushstack/webpack5-localization-plugin |
| /webpack/webpack5-module-minifier-plugin| | changelog| @rushstack/webpack5-module-minifier-plugin |

Unpublished Local Projects


| Folder | Description |
|:--- |:--- |
| /apps/lockfile-explorer-web| Rush Lockfile Explorer: helper project for building the React web application component |
| /build-tests-samples/heft-node-basic-tutorial| (Copy of sample project) Building this project is a regression test for Heft |
| /build-tests-samples/heft-node-jest-tutorial| (Copy of sample project) Building this project is a regression test for Heft |
| /build-tests-samples/heft-node-rig-tutorial| (Copy of sample project) Building this project is a regression test for Heft |
| /build-tests-samples/heft-serverless-stack-tutorial| (Copy of sample project) Building this project is a regression test for Heft |
| /build-tests-samples/heft-storybook-react-tutorial| (Copy of sample project) Building this project is a regression test for Heft |
| /build-tests-samples/heft-storybook-react-tutorial-storykit| Storybook build dependencies for heft-storybook-react-tutorial |
| /build-tests-samples/heft-web-rig-app-tutorial| (Copy of sample project) Building this project is a regression test for Heft |
| /build-tests-samples/heft-web-rig-library-tutorial| (Copy of sample project) Building this project is a regression test for Heft |
| /build-tests-samples/heft-webpack-basic-tutorial| (Copy of sample project) Building this project is a regression test for Heft |
| /build-tests-samples/packlets-tutorial| (Copy of sample project) Building this project is a regression test for @rushstack/eslint-plugin-packlets |
| /build-tests/api-documenter-scenarios| Building this project is a regression test for api-documenter |
| /build-tests/api-documenter-test| Building this project is a regression test for api-documenter |
| /build-tests/api-extractor-lib1-test| Building this project is a regression test for api-extractor |
| /build-tests/api-extractor-lib2-test| Building this project is a regression test for api-extractor |
| /build-tests/api-extractor-lib3-test| Building this project is a regression test for api-extractor |
| /build-tests/api-extractor-scenarios| Building this project is a regression test for api-extractor |
| /build-tests/api-extractor-test-01| Building this project is a regression test for api-extractor |
| /build-tests/api-extractor-test-02| Building this project is a regression test for api-extractor |
| /build-tests/api-extractor-test-03| Building this project is a regression test for api-extractor |
| /build-tests/api-extractor-test-04| Building this project is a regression test for api-extractor |
| /build-tests/eslint-7-test| This project contains a build test to validate ESLint 7 compatibility with the latest version of @rushstack/eslint-config (and by extension, the ESLint plugin) |
| /build-tests/hashed-folder-copy-plugin-webpack4-test| Building this project exercises @rushstack/hashed-folder-copy-plugin with Webpack 4. |
| /build-tests/hashed-folder-copy-plugin-webpack5-test| Building this project exercises @rushstack/hashed-folder-copy-plugin with Webpack 5. NOTE - THIS TEST IS CURRENTLY EXPECTED TO BE BROKEN |
| /build-tests/heft-action-plugin| This project contains a Heft plugin that adds a custom action |
| /build-tests/heft-action-plugin-test| This project exercises a custom Heft action |
| /build-tests/heft-copy-files-test| Building this project tests copying files with Heft |
| /build-tests/heft-example-plugin-01| This is an example heft plugin that exposes hooks for other plugins |
| /build-tests/heft-example-plugin-02| This is an example heft plugin that taps the hooks exposed from heft-example-plugin-01 |
| /build-tests/heft-fastify-test| This project tests Heft support for the Fastify framework for Node.js services |
| /build-tests/heft-jest-reporters-test| This project illustrates configuring Jest reporters in a minimal Heft project |
| /build-tests/heft-minimal-rig-test| This is a minimal rig package that is imported by the 'heft-minimal-rig-usage-test' project |
| /build-tests/heft-minimal-rig-usage-test| A test project for Heft that resolves its compiler from the 'heft-minimal-rig-test' package |
| /build-tests/heft-node-everything-esm-module-test| Building this project tests every task and config file for Heft when targeting the Node.js runtime when configured to use ESM module support |
| /build-tests/heft-node-everything-test| Building this project tests every task and config file for Heft when targeting the Node.js runtime |
| /build-tests/heft-parameter-plugin| This project contains a Heft plugin that adds a custom parameter to built-in actions |
| /build-tests/heft-parameter-plugin-test| This project exercises a built-in Heft action with a custom parameter |
| /build-tests/heft-sass-test| This project illustrates a minimal tutorial Heft project targeting the web browser runtime |
| /build-tests/heft-typescript-composite-test| Building this project tests behavior of Heft when the tsconfig.json file uses project references. |
| /build-tests/heft-web-rig-library-test| A test project for Heft that exercises the '@rushstack/heft-web-rig' package |
| /build-tests/heft-webpack4-everything-test| Building this project tests every task and config file for Heft when targeting the web browser runtime using Webpack 4 |
| /build-tests/heft-webpack5-everything-test| Building this project tests every task and config file for Heft when targeting the web browser runtime using Webpack 5 |
| /build-tests/install-test-workspace|  |
| /build-tests/localization-plugin-test-01| Building this project exercises @microsoft/localization-plugin. This tests that the plugin works correctly without any localized resources. |
| /build-tests/localization-plugin-test-02| Building this project exercises @microsoft/localization-plugin. This tests that the loader works correctly with the exportAsDefault option unset. |
| /build-tests/localization-plugin-test-03| Building this project exercises @microsoft/localization-plugin. This tests that the plugin works correctly with the exportAsDefault option set to true. |
| /build-tests/rush-amazon-s3-build-cache-plugin-integration-test| Tests connecting to an amazon S3 endpoint |
| /build-tests/rush-lib-declaration-paths-test| This project ensures all of the paths in rush-lib/lib/... have imports that resolve correctly. If this project builds, all `lib/*/.d.ts files in the @microsoft/rush-lib` package are valid. |
| /build-tests/rush-project-change-analyzer-test| This is an example project that uses rush-lib's ProjectChangeAnalyzer to |
| /build-tests/set-webpack-public-path-plugin-webpack4-test| Building this project tests the set-webpack-public-path-plugin using Webpack 4 |
| /build-tests/ts-command-line-test| Building this project is a regression test for ts-command-line |
| /libraries/rush-themed-ui| Rush Component Library: a set of themed components for rush projects |
| /libraries/rushell| Execute shell commands using a consistent syntax on every platform |
| /repo-scripts/doc-plugin-rush-stack| API Documenter plugin used with the rushstack.io website |
| /repo-scripts/generate-api-docs| Used to generate API docs for the rushstack.io website |
| /repo-scripts/repo-toolbox| Used to execute various operations specific to this repo |
| /rush-plugins/rush-litewatch-plugin| An experimental alternative approach for multi-project watch mode |
| /webpack/webpack-deep-imports-plugin| This plugin creates a bundle and commonJS files in a 'lib' folder mirroring modules in another 'lib' folder. |

Contributor Notice


This repo welcomes contributions and suggestions.  Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This repo has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.