diff --git a/.changeset/fluffy-hotels-yell.md b/.changeset/fluffy-hotels-yell.md
new file mode 100644
index 000000000000..f7930c566749
--- /dev/null
+++ b/.changeset/fluffy-hotels-yell.md
@@ -0,0 +1,6 @@
+---
+"@sveltejs/adapter-cloudflare-workers": patch
+"@sveltejs/adapter-cloudflare": patch
+---
+
+Update READMEs with additional **Comparison** notes
diff --git a/README.md b/README.md
index e30984f1ba82..fc25a6903b44 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,13 @@
# READ THIS FIRST!
-SvelteKit is still in beta. Expect bugs! Read more [here](https://svelte.dev/blog/sveltekit-beta), and track progress towards 1.0 [here](https://github.com/sveltejs/kit/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0).
+SvelteKit is still in beta. Expect bugs! Read more
+[here](https://svelte.dev/blog/sveltekit-beta), and track progress towards 1.0
+[here](https://github.com/sveltejs/kit/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0).
## Documentation
-Please see [the documentation](https://kit.svelte.dev/docs) for information about getting started and developing with SvelteKit.
+Please see [the documentation](https://kit.svelte.dev/docs) for information
+about getting started and developing with SvelteKit.
## Packages
@@ -14,30 +17,41 @@ Please see [the documentation](https://kit.svelte.dev/docs) for information abou
| [create-svelte](packages/create-svelte) | [Changelog](packages/create-svelte/CHANGELOG.md) |
| [@sveltejs/adapter-node](packages/adapter-node) | [Changelog](packages/adapter-node/CHANGELOG.md) |
| [@sveltejs/adapter-static](packages/adapter-static) | [Changelog](packages/adapter-static/CHANGELOG.md) |
+| [@sveltejs/adapter-cloudflare](packages/adapter-cloudflare) | [Changelog](packages/adapter-cloudflare/CHANGELOG.md) |
| [@sveltejs/adapter-cloudflare-workers](packages/adapter-cloudflare-workers) | [Changelog](packages/adapter-cloudflare-workers/CHANGELOG.md) |
| [@sveltejs/adapter-netlify](packages/adapter-netlify) | [Changelog](packages/adapter-netlify/CHANGELOG.md) |
| [@sveltejs/adapter-vercel](packages/adapter-vercel) | [Changelog](packages/adapter-vercel/CHANGELOG.md) |
-The SvelteKit community also makes additional [SvelteKit adapters available for use](https://sveltesociety.dev/components#adapters).
+The SvelteKit community also makes additional
+[SvelteKit adapters available for use](https://sveltesociety.dev/components#adapters).
## Bug reporting
-Please make sure the issue you're reporting involves SvelteKit. Many issues related to how a project builds originate from [Vite](https://vitejs.dev/), which SvelteKit uses to build a project. It's important to note that new Vite projects don't use SSR by default and so if you create a new Vite project from scratch many issues won't reproduce eventhough they're caused by Vite. You should thus start with a project that utilizes SSR such as:
+Please make sure the issue you're reporting involves SvelteKit. Many issues
+related to how a project builds originate from [Vite](https://vitejs.dev/),
+which SvelteKit uses to build a project. It's important to note that new Vite
+projects don't use SSR by default and so if you create a new Vite project from
+scratch many issues won't reproduce eventhough they're caused by Vite. You
+should thus start with a project that utilizes SSR such as:
- https://github.com/GrygrFlzr/vite-ssr-d3
- https://github.com/sveltejs/vite-plugin-svelte/tree/main/packages/e2e-tests/vite-ssr
-If an issue is caused by Vite, please report in the [Vite issue tracker](https://github.com/vitejs/vite/issues).
+If an issue is caused by Vite, please report in the
+[Vite issue tracker](https://github.com/vitejs/vite/issues).
## Developing
-This is a monorepo meaning the repo holds multiple packages. It requires the use of [pnpm](https://pnpm.js.org/en/). You can [install pnpm](https://pnpm.io/installation) with:
+This is a monorepo meaning the repo holds multiple packages. It requires the use
+of [pnpm](https://pnpm.js.org/en/). You can
+[install pnpm](https://pnpm.io/installation) with:
```bash
npm i -g pnpm
```
-`pnpm` commands run in the project's root directory will run on all sub-projects. You can checkout the code and build all sub-projects with:
+`pnpm` commands run in the project's root directory will run on all
+sub-projects. You can checkout the code and build all sub-projects with:
```bash
git clone git@github.com:sveltejs/kit.git
@@ -47,14 +61,18 @@ pnpm build
```
You should now be able to run [the example](examples/hn.svelte.dev) with:
+
```bash
cd examples/hn.svelte.dev
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.
+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:
+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:
```bash
git config core.hookspath .githooks
@@ -63,42 +81,66 @@ git config core.hookspath .githooks
### Coding style
There are a few guidelines we follow:
-- Internal variables are written with `snake_case` while external APIs are written with `camelCase`
-- Provide a single object as the argument to public APIs. This object can have multiple properties
-- Avoid creating new test projects under `packages/kit/test/apps` but reuse an existing one when possible
-- Ensure `pnpm lint` and `pnpm check` pass. You can run `pnpm format` to format the code
+
+- Internal variables are written with `snake_case` while external APIs are
+ written with `camelCase`
+- Provide a single object as the argument to public APIs. This object can have
+ multiple properties
+- Avoid creating new test projects under `packages/kit/test/apps` but reuse an
+ existing one when possible
+- Ensure `pnpm lint` and `pnpm check` pass. You can run `pnpm format` to format
+ the code
### Generating changelogs
-For changes to be reflected in package changelogs, run `pnpx changeset` and follow the prompts. All changesets should be `patch` until SvelteKit 1.0
+For changes to be reflected in package changelogs, run `pnpx changeset` and
+follow the prompts. All changesets should be `patch` until SvelteKit 1.0
### Testing
-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`.
+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`.
-You can run the tests for only a single package by first moving to that directory. E.g. `cd packages/kit`.
+You can run the tests for only a single package by first moving to that
+directory. E.g. `cd packages/kit`.
You must rebuild each time before running the tests if you've made code changes.
-To run a single integration test, provide the `FILTER` env var with the test name. E.g. `FILTER="includes paths" pnpm test:integration`. You can also open up the file and change `test` to `test.only`.
+To run a single integration test, provide the `FILTER` env var with the test
+name. E.g. `FILTER="includes paths" pnpm test:integration`. You can also open up
+the file and change `test` to `test.only`.
-You can run the test server with `cd packages/kit/test/apps/basics; pnpm run dev` to hit it with your browser.
+You can run the test server with
+`cd packages/kit/test/apps/basics; pnpm run dev` to hit it with your browser.
-You may need to install some dependencies first e.g. with `npx playwright install-deps` (which only works on Ubuntu).
+You may need to install some dependencies first e.g. with
+`npx playwright install-deps` (which only works on Ubuntu).
### Documentation
-All documentation for SvelteKit is in the `documentation` directory, any improvements should be made as a Pull Request to this repository. The documentation is served via and API, the site itself is located in the [`sites` repository](https://github.com/sveltejs/sites).
+All documentation for SvelteKit is in the `documentation` directory, any
+improvements should be made as a Pull Request to this repository. The
+documentation is served via and API, the site itself is located in the
+[`sites` repository](https://github.com/sveltejs/sites).
-If you wish to preview documentation changes locally, please follow the instructions here: [Previewing local docs changes](https://github.com/sveltejs/sites/blob/master/sites/kit.svelte.dev/README.md#previewing-local-docs-changes).
+If you wish to preview documentation changes locally, please follow the
+instructions here:
+[Previewing local docs changes](https://github.com/sveltejs/sites/blob/master/sites/kit.svelte.dev/README.md#previewing-local-docs-changes).
### Releases
-The [Changesets GitHub action](https://github.com/changesets/action#with-publishing) will create and update a PR that applies changesets and publishes new versions of changed packages to npm.
+The
+[Changesets GitHub action](https://github.com/changesets/action#with-publishing)
+will create and update a PR that applies changesets and publishes new versions
+of changed packages to npm.
-> It uses `pnpm publish` rather than `pnpx changeset publish` so that we can use the `--filter` and (while in beta) `--tag` flags — though perhaps they work with `pnpx changeset publish`?
+> It uses `pnpm publish` rather than `pnpx changeset publish` so that we can use
+> the `--filter` and (while in beta) `--tag` flags — though perhaps they work
+> with `pnpx 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:
+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
@@ -107,10 +149,20 @@ npm publish --access=public
## Code structure
Entry points to be aware of are:
-- [`packages/create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte) - code that's run when you create a new project with `npm init svelte@next`
-- [`packages/kit/src/packaging`](https://github.com/sveltejs/kit/tree/master/packages/kit/src/packaging) - for the `svelte-kit package` command
-- [`packages/kit/src/core/dev/index.js`](https://github.com/sveltejs/kit/blob/master/packages/kit/src/core/dev/index.js) - for the dev-mode server
-- [`packages/kit/src/core/build/index.js`](https://github.com/sveltejs/kit/blob/master/packages/kit/src/core/build/index.js) - for the production server
-- [`packages/adapter-[platform]`](https://github.com/sveltejs/kit/tree/master/packages) - for the various SvelteKit-provided adapters
-Most code that's called at build-time or from the CLI entry point lives in [packages/kit/src/core](https://github.com/sveltejs/kit/tree/master/packages/kit/src/core). Code that runs for rendering and routing lives in [packages/kit/src/runtime](https://github.com/sveltejs/kit/tree/master/packages/kit/src/runtime). Most changes to SvelteKit itself would involve code in these two directories.
+- [`packages/create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte) -
+ code that's run when you create a new project with `npm init svelte@next`
+- [`packages/kit/src/packaging`](https://github.com/sveltejs/kit/tree/master/packages/kit/src/packaging) -
+ for the `svelte-kit package` command
+- [`packages/kit/src/core/dev/index.js`](https://github.com/sveltejs/kit/blob/master/packages/kit/src/core/dev/index.js) -
+ for the dev-mode server
+- [`packages/kit/src/core/build/index.js`](https://github.com/sveltejs/kit/blob/master/packages/kit/src/core/build/index.js) -
+ for the production server
+- [`packages/adapter-[platform]`](https://github.com/sveltejs/kit/tree/master/packages) -
+ for the various SvelteKit-provided adapters
+
+Most code that's called at build-time or from the CLI entry point lives in
+[packages/kit/src/core](https://github.com/sveltejs/kit/tree/master/packages/kit/src/core).
+Code that runs for rendering and routing lives in
+[packages/kit/src/runtime](https://github.com/sveltejs/kit/tree/master/packages/kit/src/runtime).
+Most changes to SvelteKit itself would involve code in these two directories.
diff --git a/packages/adapter-cloudflare-workers/README.md b/packages/adapter-cloudflare-workers/README.md
index a62bfead4808..1a04ee8a6133 100644
--- a/packages/adapter-cloudflare-workers/README.md
+++ b/packages/adapter-cloudflare-workers/README.md
@@ -1,12 +1,31 @@
# adapter-cloudflare-workers
-SvelteKit adapter that creates a Cloudflare Workers site using a function for dynamic server rendering.
+SvelteKit adapter that creates a Cloudflare Workers site using a function for
+dynamic server rendering.
-This is very experimental; the adapter API isn't at all fleshed out, and things will definitely change.
+This is very experimental; the adapter API isn't at all fleshed out, and things
+will definitely change.
+
+_**Comparisons**_
+
+- `adapter-cloudflare` – supports all SvelteKit features; builds for
+ [Cloudflare Pages](https://blog.cloudflare.com/cloudflare-pages-goes-full-stack/)
+- `adapter-cloudflare-workers` – supports all SvelteKit features; builds for
+ Cloudflare Workers
+- `adapter-static` – only produces client-side static assets; compatible with
+ Cloudflare Pages
+
+> **Note:**
Cloudflare Pages' new Workers integration is currently in
+> beta.
Compared to `adapter-cloudflare-workers`, this adapter will be the
+> preferred approach for most users since building on top of Pages unlocks
+> automatic builds and deploys, preview deployments, instant rollbacks, etc.
+> From SvelteKit's perspective, there is no difference and no functionality loss
+> when migrating to/from the Workers and the Pages adapters.
## Usage
-Install with `npm i -D @sveltejs/adapter-cloudflare-workers@next`, then add the adapter to your `svelte.config.js`:
+Install with `npm i -D @sveltejs/adapter-cloudflare-workers@next`, then add the
+adapter to your `svelte.config.js`:
```js
import adapter from '@sveltejs/adapter-cloudflare-workers';
@@ -21,9 +40,14 @@ export default {
## Basic Configuration
-**You will need [Wrangler](https://developers.cloudflare.com/workers/cli-wrangler/install-update) installed on your system**
+**You will need
+[Wrangler](https://developers.cloudflare.com/workers/cli-wrangler/install-update)
+installed on your system**
-This adapter expects to find a [wrangler.toml](https://developers.cloudflare.com/workers/platform/sites/configuration) file in the project root. It will determine where to write static assets and the worker based on the `site.bucket` and `site.entry-point` settings.
+This adapter expects to find a
+[wrangler.toml](https://developers.cloudflare.com/workers/platform/sites/configuration)
+file in the project root. It will determine where to write static assets and the
+worker based on the `site.bucket` and `site.entry-point` settings.
Generate this file using `wrangler` from your project directory
@@ -36,9 +60,11 @@ Now you should get some details from Cloudflare. You should get your:
1. Account ID
2. And your Zone-ID (Optional)
-Get them by visiting your Cloudflare-Dashboard and click on any domain. There, you can scroll down and on the left, you can see your details under **API**.
+Get them by visiting your Cloudflare-Dashboard and click on any domain. There,
+you can scroll down and on the left, you can see your details under **API**.
-Then configure your sites build directory and your account-details in the config file:
+Then configure your sites build directory and your account-details in the config
+file:
```toml
account_id = 'YOUR ACCOUNT_ID'
@@ -55,7 +81,8 @@ command = ""
format = "service-worker"
```
-It's recommended that you add the `build` and `workers-site` folders (or whichever other folders you specify) to your `.gitignore`.
+It's recommended that you add the `build` and `workers-site` folders (or
+whichever other folders you specify) to your `.gitignore`.
Now, log in with wrangler:
@@ -71,13 +98,17 @@ npm run build && wrangler publish
**You are done!**
-More info on configuring a cloudflare worker site can be found [here](https://developers.cloudflare.com/workers/platform/sites/start-from-existing)
+More info on configuring a cloudflare worker site can be found
+[here](https://developers.cloudflare.com/workers/platform/sites/start-from-existing)
## Advanced Configuration
### esbuild
-As an escape hatch, you may optionally specify a function which will receive the final esbuild options generated by this adapter and returns a modified esbuild configuration. The result of this function will be passed as-is to esbuild. The function can be async.
+As an escape hatch, you may optionally specify a function which will receive the
+final esbuild options generated by this adapter and returns a modified esbuild
+configuration. The result of this function will be passed as-is to esbuild. The
+function can be async.
For example, you may wish to add a plugin:
@@ -106,4 +137,5 @@ const options = {
## Changelog
-[The Changelog for this package is available on GitHub](https://github.com/sveltejs/kit/blob/master/packages/adapter-cloudflare-workers/CHANGELOG.md).
+[The Changelog for this package is available on
+GitHub](https://github.com/sveltejs/kit/blob/master/packages/adapter-cloudflare-workers/CHANGELOG.md).
diff --git a/packages/adapter-cloudflare/README.md b/packages/adapter-cloudflare/README.md
index 4e8db306ab21..53dacfc97404 100644
--- a/packages/adapter-cloudflare/README.md
+++ b/packages/adapter-cloudflare/README.md
@@ -12,6 +12,13 @@ _**Comparisons**_
- `adapter-static` – only produces client-side static assets; compatible with
Cloudflare Pages
+> **Note:**
Cloudflare Pages' new Workers integration is currently in
+> beta.
Compared to `adapter-cloudflare-workers`, this adapter will be the
+> preferred approach for most users since building on top of Pages unlocks
+> automatic builds and deploys, preview deployments, instant rollbacks, etc.
+> From SvelteKit's perspective, there is no difference and no functionality loss
+> when migrating to/from the Workers and the Pages adapters.
+
## Installation
```sh
diff --git a/packages/adapter-cloudflare/files/worker.js b/packages/adapter-cloudflare/files/worker.js
index 7282d43e8649..8378d9f5add7 100644
--- a/packages/adapter-cloudflare/files/worker.js
+++ b/packages/adapter-cloudflare/files/worker.js
@@ -28,7 +28,7 @@ export default {
});
}
} catch (e) {
- return new Response('Error rendering route:' + (e.message || e.toString()), { status: 500 });
+ return new Response('Error rendering route: ' + (e.message || e.toString()), { status: 500 });
}
return new Response({