The monorepo template is a GitHub repository template that preconfigures common front end dependencies for best practices and abstracts them in an extensible manner.
Problem | Goal |
---|---|
Front end engineers... | Front end engineers... |
... spend too much time managing configurations. | ... should spend more time writing great applications. |
... only harness a subset of best practices. | ... have best practices available at no additional cost. |
... have difficulty integrating dependencies. | ... have dependencies integrated seamlessly. |
The front end ecosystem should just work.
- Cloudflare purge for cache busting
- CodeQL for security analysis
- Cypress for end-to-end testing
- ESLint for linting
- GitHub Actions for continuous integration and continuous delivery
- GitHub Packages and NPM for package publishing
- GitHub Pages for static asset deployments
- Jest for unit testing
- Node (latest) for compatibility
- NYC for code coverage reports
- Prettier for code formatting
- React Scripts for application development
- Rollup for module bundling
- Sentry release for source mapping
- TypeScript for static typing
- Visual Studio Code for code editing
- Yarn (latest) for workspaces
All with zero configuration and completely extensible if deviation is desired.
- Getting started
- Adding a React application
- Adding a React module
- Contributing
- Debugging
- Dependencies
- To build the application, run
yarn packages/example-next-application run build
. - To end-to-end test your application, run
yarn packages/example-next-application run cypress:start
to first run the development server with code coverage reporting enabled, then runyarn packages/example-next-application run cypress:run
. - To lint your changes to the application, run
yarn packages/example-next-application run eslint
. - To unit test your changes to the application, run
yarn packages/example-next-application run jest
. - To unit test your changes to the application in watch mode, run
yarn packages/example-next-application run jest:watch
. - To start the application development server, run
yarn packages/example-next-application run start
.
- To build the application, run
yarn packages/example-react-application run build
. - To report Cypress's and Jest's combined test coverage, run
yarn packages/example-react-application run coverage
. The combined report will be located in/packages/example-react-application/coverage/
. - To end-to-end test your application, run
yarn packages/example-react-application run cypress:start
to first run the development server with code coverage reporting enabled, then runyarn packages/example-react-application run cypress:run
. - To lint your changes to the application, run
yarn packages/example-react-application run eslint
. - To unit test your changes to the application, run
yarn packages/example-react-application run jest
. - To unit test your changes to the application in watch mode, run
yarn packages/example-react-application run jest:watch
. - To start the application development server, run
yarn packages/example-react-application run start
.
- To lint your changes to the module, run
yarn packages/example-react-module run eslint
. - To automatically fix lint errors in the module, run
yarn packages/example-react-module run eslint:fix
. - To unit test your changes to the module, run
yarn packages/example-react-module run jest
. - To unit test your changes to the module in watch mode, run
yarn packages/example-react-module run jest:watch
. - To build the module, run
yarn packages/example-react-module run rollup
. - To build the module in watch mode, run
yarn packages/example-react-module run rollup:watch
.