SvelteKit is still in beta. Expect bugs! Read more here, and track progress towards 1.0 here.
Please see the documentation for information about getting started and developing with SvelteKit.
This monorepo uses pnpm. Install it...
npm i -g pnpm
...then install this repo's dependencies...
pnpm i
...then build SvelteKit and the other packages:
pnpm build
You should now be able to run the examples by navigating to one of the directories and doing pnpm dev
.
Run pnpm dev
inside the packages/kit
directory to continually rebuild @sveltejs/kit
as you make changes to SvelteKit. Restarting the example/test apps will cause the newly built version to be used.
To use the git hooks in the repo, which will save you waiting for CI to tell you that you forgot to lint, run this:
git config core.hookspath .githooks
For changes to be reflected in package changelogs, run pnpx changeset
and follow the prompts.
The Changesets GitHub action will create and update a PR that applies changesets and publishes new versions of changed packages to npm.
It uses
pnpm publish
rather thanpnpx changeset publish
so that we can use the--filter
and (while in beta)--tag
flags — though perhaps they work withpnpx changeset publish
?
New packages will need to be published manually the first time if they are scoped to the @sveltejs
organisation, by running this from the package directory:
npm publish --access=public
Run pnpm test
to run the tests from all subpackages. Browser tests live in subdirectories of packages/kit/test
such as packages/kit/test/apps/basics
. To run a single test, open up the file and change test
to test.only
for the relevant test.
You may need to install some dependencies first e.g. with npx playwright install-deps
(which only works on Ubuntu).