This is a template for a monorepo that uses best practices for TypeScript, Web Services and React.
It is what @bhouston considers best practice in January 2024.
![Screenshot 2024-01-09 at 4 53 45 PM](https://private-user-images.githubusercontent.com/588541/295352304-3a7e6b62-ff16-492d-9f20-b409ab84f104.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk1MTQ0MzIsIm5iZiI6MTcxOTUxNDEzMiwicGF0aCI6Ii81ODg1NDEvMjk1MzUyMzA0LTNhN2U2YjYyLWZmMTYtNDkyZC05ZjIwLWI0MDlhYjg0ZjEwNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwNjI3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDYyN1QxODQ4NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03YTA5YWViZGYxYTgwYzk4Mjc0ODkyYzNjYzg3N2UzMzEyNTE3YzhmNzQwYjVlYjk2NjdmOTMwYWY1MjUxNTljJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.KLmwGw0Vbe1oI3BbO2_G5OfqRvQ56f6jkzfXMSeLp60)
- Mono-repository using NPM workspaces
- TypeScript for type safety
- ES Modules for fast builds
- NodeNext node resolution
- React for UI
- Both react and vanilla JS libraries
- Command line, React app, and web server
- Vite for Bundling, CSS Handling, Live Reloading.
- Hot reload of React
- Auto service restart for the web server
- Lerna for managing the monorepo dependencies in parallel builds
- Prettier for code formatting
- ESLint for linting
- Incremental and caching builds via NX.
- VSCode will auto-format on save and paste.
- Jest testing
- Github action CI
- Clone this repository
- Run
npm install
- Run
npm run test
to run all jest tests
- Run
npm run watch
to start the hot reload development server & build watchers
- Run
npm run build
to build the source
- Run
npx koa-server
to start the webserver - Open the link that appears in the console in your browser
- Run
npx cmdline-app
to run the CLI example