Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/workflows/ci-sveltekit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: CI - SvelteKit

on:
push:
branches: [main]
paths:
- 'packages/starter-sveltekit/**'
- '.github/workflows/ci-sveltekit.yml'
- 'package.json'
- 'pnpm-lock.yaml'
- 'eslint.config.js'
- 'prettier.config.js'
pull_request:
branches: [main]
paths:
- 'packages/starter-sveltekit/**'
- '.github/workflows/ci-sveltekit.yml'
- 'package.json'
- 'pnpm-lock.yaml'
- 'eslint.config.js'
- 'prettier.config.js'

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Format check
run: pnpm --filter starter-sveltekit format:check

- name: Lint
run: pnpm --filter starter-sveltekit lint

- name: Type check
run: pnpm --filter starter-sveltekit type-check

- name: Build
run: pnpm --filter starter-sveltekit build
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ dist/

# generated types
.astro/
.svelte-kit/

# dependencies
node_modules/
Expand Down Expand Up @@ -41,3 +42,5 @@ coverage/
# Temporary files
*.tmp
*.temp

/packages/*/build
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@
**/output
.changeset/*.md
pnpm-lock.yaml
**/.svelte-kit
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
"build:tanstack": "pnpm --filter starter-tanstack-start-react build",
"dev:nuxt": "pnpm --filter starter-nuxt dev",
"build:nuxt": "pnpm --filter starter-nuxt build",
"dev:sveltekit": "pnpm --filter starter-sveltekit dev",
"build:sveltekit": "pnpm --filter starter-sveltekit build",
"generate:stats": "pnpm --filter @framework-tracker/stats-generator generate",
"lint": "pnpm -r --parallel lint",
"lint:fix": "pnpm -r --parallel lint:fix",
Expand Down
2 changes: 2 additions & 0 deletions packages/starter-sveltekit/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
/.svelte-kit
/build
38 changes: 38 additions & 0 deletions packages/starter-sveltekit/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# sv

Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli).

## Creating a project

If you're seeing this, you've probably already done this step. Congrats!

```sh
# create a new project in the current directory
npx sv create

# create a new project in my-app
npx sv create my-app
```

## Developing

Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:

```sh
npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open
```

## Building

To create a production version of your app:

```sh
npm run build
```

You can preview the production build with `npm run preview`.

> To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment.
14 changes: 14 additions & 0 deletions packages/starter-sveltekit/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// @ts-check
import rootConfig from '../../eslint.config.js'

export default [
{
ignores: [
'**/node_modules/**',
'**/.svelte-kit/**',
'**/build/**',
'**/dist/**',
],
},
...rootConfig,
]
27 changes: 27 additions & 0 deletions packages/starter-sveltekit/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"name": "starter-sveltekit",
"private": true,
"version": "0.0.1",
"type": "module",
"scripts": {
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview",
"prepare": "svelte-kit sync || echo ''",
"type-check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
"type-check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
"lint": "eslint .",
"lint:fix": "eslint . --fix",
"format": "prettier --write .",
"format:check": "prettier --check ."
},
"devDependencies": {
"@sveltejs/adapter-node": "^5.0.0",
"@sveltejs/kit": "^2.49.1",
"@sveltejs/vite-plugin-svelte": "^6.2.1",
"svelte": "^5.45.6",
"svelte-check": "^4.3.4",
"typescript": "^5.9.3",
"vite": "^7.2.6"
}
}
13 changes: 13 additions & 0 deletions packages/starter-sveltekit/src/app.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// See https://svelte.dev/docs/kit/types#app.d.ts
// for information about these interfaces
declare global {
namespace App {
// interface Error {}
// interface Locals {}
// interface PageData {}
// interface PageState {}
// interface Platform {}
}
}

export {}
11 changes: 11 additions & 0 deletions packages/starter-sveltekit/src/app.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>
1 change: 1 addition & 0 deletions packages/starter-sveltekit/src/lib/assets/favicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions packages/starter-sveltekit/src/lib/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// place files you want to import through the `$lib` alias in this folder.
11 changes: 11 additions & 0 deletions packages/starter-sveltekit/src/routes/+layout.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<script lang="ts">
import favicon from '$lib/assets/favicon.svg';
let { children } = $props();
</script>

<svelte:head>
<link rel="icon" href={favicon} />
</svelte:head>

{@render children()}
2 changes: 2 additions & 0 deletions packages/starter-sveltekit/src/routes/+page.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<h1>Welcome to SvelteKit</h1>
<p>Visit <a href="https://svelte.dev/docs/kit">svelte.dev/docs/kit</a> to read the documentation</p>
3 changes: 3 additions & 0 deletions packages/starter-sveltekit/static/robots.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# allow crawling everything by default
User-agent: *
Disallow:
13 changes: 13 additions & 0 deletions packages/starter-sveltekit/svelte.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import adapter from '@sveltejs/adapter-node'
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'

/** @type {import('@sveltejs/kit').Config} */
const config = {
preprocess: vitePreprocess(),

kit: {
adapter: adapter(),
},
}

export default config
15 changes: 15 additions & 0 deletions packages/starter-sveltekit/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"extends": "./.svelte-kit/tsconfig.json",
"compilerOptions": {
"rewriteRelativeImportExtensions": true,
"allowJs": true,
"checkJs": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"moduleResolution": "bundler"
}
}
6 changes: 6 additions & 0 deletions packages/starter-sveltekit/vite.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { sveltekit } from '@sveltejs/kit/vite'
import { defineConfig } from 'vite'

export default defineConfig({
plugins: [sveltekit()],
})
Loading
Loading