Welcome to my monorepo! The code in here is used to build and run my blog. There are various tools in here, this readme will get you started and describe the structure of the packages.
You will need node.js. I use nvm for windows (since I dev on a windows machine atm). .nvmrc has the version of node.js you need.
nvm install
Once you have node.js then you will able to run the following:
npm i -g pnpm
pnpm install
pnpm build
pnpm test
pnpm gen-certs
pnpm start --filter @jaybeeuu/site
That will install pnpm, install the dependencies for the packages, build and test the packages, generate development SSL certificates and finally start the site. After that you are away. Head to https://localhost:3443 to see the site.
I use VSCode to develop and the repo contains launch configs, settings and extension recommendations to help setup and get going.
Name | Path | Version | Description |
---|---|---|---|
@jaybeeuu/compost | /packages/compost | A CLI tool used to compile markdown posts into HTML. | |
@jaybeeuu/e2e | /packages/e2e | Cypress end to end tests for the blog. | |
@jaybeeuu/e2e-hooks | /packages/e2e-hooks | A collection of css classes used to hook into the application for e2e tets. | |
@jaybeeuu/eslint-config | /packages/eslint-config | The base eslint configurations I use throughout the repo. | |
@jaybeeuu/feed-webpack-plugin | /packages/feed-webpack-plugin | A webpack plugin wrapper for feed. | |
@jaybeeuu/posts | /packages/posts | The markdown source and metadata for posts on my blog. | |
@jaybeeuu/preact-async | /packages/preact-async | Some tools for workign with async code in Preact. | |
@jaybeeuu/preact-recoilless | /packages/preact-recoilless | Preact bindings for recoilless. | |
@jaybeeuu/reading-time-cli | /packages/reading-time-cli | A really simple Command Line Interface for reading-time. | |
@jaybeeuu/recoilless | /packages/recoilless | A (bit too) fully fledged state management library similar to recoil. | |
@jaybeeuu/scripts | /packages/scripts | CLI scripts used to setup the environment. | |
@jaybeeuu/site | /packages/site | The main site. | |
@jaybeeuu/utilities | /packages/utilities | A few general purpose, useful bits of code used across the other packages. |
Command | Description |
---|---|
build | Builds all the packages in the repo. |
build-changes | Builds all the packages that have changed since main. |
clean | Cleans the repo. All untracked files and directories are removed. |
e2e | Runs the e2e tests. Add run to ru them headless or open to open the cypress UI. |
format | Formats files in the repo. |
format-check | Checks the format of files in the repo. |
gen-certs | Generates the SSL certificates in all the packages which need them. |
lint | Lints the packages with markdown-lint or eslint. |
spell-check | Spell checks markdown in the application. |
start-all | Starts all the packages in watch mode. |
test | Runs the unit tests using jest projects. |
test-debug | Runs the unit tests but uses the --inspect node option to open the debug port. |
type-check | Runs typescript type checks in the packages. |