This is the branch for the SolidStart 2.0.0-alpha that is currently under heavy development.
Current SolidStart is maintained at 1.x.
Prerequisites
- Node.js: Use the version specified in
.nvmrc. To manage multiple versions across your system, we recommend a version manager such as fnm, or another of your choice.
- pnpm: Install globally via
npm install -g pnpm. Or let Corepack handle it in the setup step below.
- Git: Ensure Git is installed for cloning and managing the repository.
Monorepo Structure
SolidStart is a pnpm-based monorepo with nested workspaces. Key directories include:
packages/start: The core @solidjs/start package.
apps/landing-page: The official landing page.
apps/tests: Unit and end-to-end (E2E) tests using Vitest and Playwright.
apps/fixtures: Fixture projects for testing.
Use pnpm filters (e.g. pnpm --filter @solidjs/start ...) to target specific packages.
Local Setup
-
Clone the repository
git clone https://github.com/solidjs/solid-start.git
cd solid-start
-
Enable the correct pnpm version specified in package.json
corepack enable
-
Install dependencies
pnpm dedupe
(pnpm dedupe will install dependencies and clean the lockfile from duplicates, useful for preventing conflicts).
-
Build all packages and the landing page
pnpm run build:all
If you encounter issues (e.g. missing node_modules), clean the workspace
pnpm run clean:all
Then reinstall dependencies and rebuild.
Running Tests
End-to-end tests are located in apps/tests projects. For manual testing and development use the apps/fixtures apps, and finally, integration and unit tests live inside their respective packages.
-
Install the Chromium for Playwright binary (required only once)
pnpm --filter tests exec playwright install chromium
-
For unit tests that check build artifacts, build the test app first
pnpm --filter tests run build
-
Run unit tests (puts vitest in watch mode)
pnpm --filter tests run unit
- CI mode (run once):
pnpm --filter tests run unit:ci
- UI mode:
pnpm --filter tests run unit:ui
-
Run E2E tests
pnpm --filter tests run e2e
- UI mode:
pnpm --filter tests run e2e:ui
-
Clean test artifacts
pnpm run clean:test
Development
-
Make your changes in the relevant package (e.g. packages/start)
-
Rebuild affected packages
pnpm run packages:build
For a full rebuild: pnpm run build:all
-
Test your changes
-
Clean builds if needed
pnpm run packages:clean # Cleans packages' node_modules and dist folders
pnpm run lp:clean # Cleans the landing page
pnpm run clean:root # Cleans root-level caches
If you have read all the way here, you’re already a champ! 🏆
Thank you.
评论