To start with this project, you will need pnpm 9. Install the dependencies with pnpm i
in the root.
This project is a monorepo of the following packages:
packages/steiger
— the linter itselfpackages/steiger-plugin-fsd
— a set of rules for checking FSD compliancepackages/pretty-reporter
— a reporter for the linter to print diagnosticstooling/eslint-config
— a shared ESLint configurationtooling/tsconfig
— a shared TypeScript configuration
Packages steiger
and steiger-plugin-fsd
are published to npm, the rest are internal.
Note
The package steiger-plugin-fsd
is published as @feature-sliced/steiger-plugin
.
The tasks in this monorepo are managed with Turborepo 2. It is available in this project as pnpm turbo
, but you should also consider installing it globally for easier use:
pnpm install turbo --global
Here are some of the things you can do around the repo:
turbo build
— build all packagesturbo test
— run tests for all packagesturbo lint
— lint all packages with ESLintturbo typecheck
— type-check all packagespnpm check-monorepo
— check the monorepo structure with Manypkg
This project uses Changesets for versioning. When you made changes, run pnpm changeset
in the root to create a new changeset and add that to your PR.
For maintainers
When it's time to release new versions of packages to npm, run the following commands:
turbo build
pnpm changeset version
# -- Commit the changelog and the version bump --
pnpm changeset publish
git push --follow-tags