Common config for monorepo with pnpm
+ eslint
+ prettier
+ husky
+ lintstaged
+ commitlint
+ changesets
etc.
The purpose of these config is to define a common set of strict rules to validate the coding standards in monorepo.
-
Create git repo
git init
-
Add git ignore file
./.gitignore
// .gitignore node_modules
-
Add git attributes file
./.gitattributes
// .gitattributes **/pnpm-lock.yaml -diff
-
Add package file
./package.json
pnpm init
-
Add global
rimraf
npm add -g rimraf
-
Add common scripts to
./package.json
// package.json "scripts": { ... "clean": "rimraf \"**/node_modules\"", "fresh": "pnpm clean && pnpm i" ... }
-
Add pnpm workspace file
./pnpm-workspace.yaml
// pnpm-workspace.yaml packages: - 'packages/*'
-
Add reference to
@muravjev/prettier-config
pnpm add -w -D @muravjev/prettier-config
-
Add prettier configuration file
./configs/.prettierrc.js
// .prettierrc.js module.exports = require('@muravjev/prettier-config');
-
Add prettier ignore patterns file
./configs/.prettierignore
// .prettierignore **/node_modules
-
Add prettier scripts to
./package.json
// package.json "scripts": { ... "format": "prettier --config ./configs/.prettierrc.js --ignore-path ./configs/.prettierignore" "format:fix": "pnpm format --write" ... }
-
If you using vs code
prettier
plugin, configure it, by adding these settings to./.vscode/settings.json
// settings.json { ... "prettier.requireConfig": true, "prettier.ignorePath": "./configs/.prettierignore", "prettier.configPath": "./configs/.prettierrc.js" ... }
USAGE:
- pnpm format {path} -c
- pnpm format:fix {path}