Skip to content

ams-yongho/monorepo-template-2

 
 

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 Cron (weekly)

Next application

React application Cypress

React module downloads minzipped size version

Documentation

Packages

Next application

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

React application

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

React module

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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 59.8%
  • JavaScript 29.8%
  • HTML 10.4%