Skip to content

gtluszcz/monorepo-template

 
 

Repository files navigation

Monorepo template

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.

Features

  • 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.


Monorepo

Next application

React application Cypress

React module downloads minzipped size version

Documentation

Packages

Next application

  • To build the application, run yarn example-next-application:build.
  • To end-to-end test your application, run yarn example-next-application:cypress:start to first run the development server with code coverage reporting enabled, then run yarn example-next-application:cypress:run.
  • To lint your changes to the application, run yarn example-next-application:eslint.
  • To unit test your changes to the application, run yarn example-next-application:jest.
  • To unit test your changes to the application in watch mode, run yarn example-next-application:jest:watch.
  • To start the application development server, run yarn example-next-application:start.

React application

  • To build the application, run yarn example-react-application:build.
  • To report Cypress's and Jest's combined test coverage, run yarn example-react-application:coverage. The combined report will be located in /packages/example-react-application/coverage/.
  • To end-to-end test your application, run yarn example-react-application:cypress:start to first run the development server with code coverage reporting enabled, then run yarn example-react-application:cypress:run.
  • To lint your changes to the application, run yarn example-react-application:eslint.
  • To unit test your changes to the application, run yarn example-react-application:jest.
  • To unit test your changes to the application in watch mode, run yarn example-react-application:jest:watch.
  • To start the application development server, run yarn example-react-application:start.

React module

  • To lint your changes to the module, run yarn example-react-module:eslint.
  • To automatically fix lint errors in the module, run yarn example-react-module:eslint:fix.
  • To unit test your changes to the module, run yarn example-react-module:jest.
  • To unit test your changes to the module in watch mode, run yarn example-react-module:jest:watch.
  • To build the module, run yarn example-react-module:rollup.
  • To build the module in watch mode, run yarn example-react-module:rollup:watch.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 70.4%
  • JavaScript 17.4%
  • HTML 12.2%