1. Install
git clone [email protected]:vikejs/bati.git
cd bati # Go to the monorepo root
pnpm install
Note
See System requirements for how to install pnpm.
2. Build
Build Bati's source code:
pnpm build # At the monorepo root
Note
The build process works is divided into several phases:
- Compile packages necessary to compile boilerplates
- Compile and prepare every boilerplate (from
boilerplates
folder) individually - Compile
package/cli
to generate the self-contained Bati CLI
# At the monorepo root
pnpm run new-boilerplate <name_of_integration>
pnpm i
This will create a new folder in boilerplates/
folder.
You can then check the boilerplates documentation,
or take inspiration from existing ones.
# At the monorepo root
# Run the unit tests /**/*.local.spec.ts
pnpm run test
# Run the end-to-end tests /packages/tests/tests/*.spec.ts
pnpm run test-e2e
Filter end-to-end tests:
# Run all e2e tests containing --solid and --authjs flags
pnpm run test-e2e --filter solid,authjs
Note
End-to-end tests run thanks to turborepo, which will cache tests results. This means that even when running the full end-to-end test suite, only changed tests/code will actually be executed.
Tip
Even with the help of turborepo, the end-to-end tests can take a lot of time. We therefore recommend the following:
- Instead of running all end-to-end tests, run only the end-to-end tests of one example.
- Instead of running all end-to-end tests locally, run them on GitHub: push your changes to your Bati fork (
github.com/my-username/bati
) and see the result of all end-to-end tests on the GitHub actions of your fork.
Note
These requirements are only needed for developing the source code of Bati. @bati/cli
itself can be used with Windows and with any package manager.
- Node.js
>=18.0.0
- pnpm
9.4.0
- Unix (Linux or macOS)
Note
To install pnpm run:
npm install -g pnpm
(Or see pnpm Docs > Installation for alternative methods.)