svelte-adapter-appengine
Version:
Adapter for Svelte that integrates with Google Cloud Appengine
93 lines (61 loc) • 3.32 kB
Markdown
Easily deploy your SvelteKit applications on [Google Cloud App Engine](https://cloud.google.com/appengine) with the `svelte-adapter-appengine` package.
[](https://www.npmjs.com/package/svelte-adapter-appengine)
[](https://github.com/halfdanj/svelte-adapter-appengine/actions/workflows/test.yml)
[](https://kit.svelte.dev/)
To set up the adapter in your SvelteKit project:
1. Install the package as a development dependency:
```bash
npm install --save-dev svelte-adapter-appengine
```
2. Update your `svelte.config.js` to use the adapter:
```diff
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+import adapter from "svelte-adapter-appengine";
/** @type {import('@sveltejs/kit').Config} */
const config = {
preprocess: vitePreprocess(),
kit: {
+ adapter: adapter(),
},
};
export default config;
```
3. Build your application:
```bash
npm run build
```
4. Deploy your application to App Engine:
```bash
gcloud app deploy --project <CLOUD_PROJECT_ID> build/app.yaml
```
Learn more about the `gcloud` utility in the [official documentation](https://cloud.google.com/sdk/gcloud)
Customize the adapter behavior using the following options:
```ts
adapter({
// Build output directory (default: `/build`)
out: "/build",
// Enable Google Cloud Tracing Agent for improved logging (default: `false`)
useCloudTracing: false,
// Enable or disable Google Cloud Logging (default: `false`)
// See: https://cloud.google.com/logging/docs/overview
useCloudLogging: false,
// Specify external modules for the esbuild step
external: [],
// Specify Node modules to be added to the `package.json` file in the build step
// These modules will be fetched when the application is deployed
dependencies: [],
// Set the Node.js version for the App Engine runtime (default: `22`)
// See available runtimes: https://cloud.google.com/appengine/docs/standard/nodejs/runtime
nodejsRuntime: 22,
});
```
You can also customize the generated `app.yaml` file by creating an `app.yaml` file in your project root. The adapter will merge your custom configuration with the generated `app.yaml`, allowing you to define custom machine types, routes, or other [app.yaml configurations](https://cloud.google.com/appengine/docs/standard/reference/app-yaml?tab=node.js).
The Server-Side Rendering (SSR) part of SvelteKit is hosted on App Engine using a Node.js runtime, using [polka](https://github.com/lukeed/polka) to mimic [@sveltejs/adapter-node
](https://github.com/sveltejs/kit/tree/master/packages/adapter-node).
Static files are served directly from Cloud Storage, bypassing the Node.js web server. The adapter automatically generates routes for all static assets in the `app.yaml` file.
## Example Application
Check out a live example application at [https://svelte-adapter-demo.uc.r.appspot.com/](https://svelte-adapter-demo.uc.r.appspot.com/). This demo app is the default SvelteKit template deployed with the default adapter settings.