Linty fresh
This commit is contained in:
34
README.md
34
README.md
@@ -29,23 +29,23 @@ pnpm preview # preview build at http://localhost:4173
|
||||
|
||||
## Scripts
|
||||
|
||||
| Script | Description |
|
||||
| -------------------- | ------------------------------------------------------------------------------------------------ |
|
||||
| `pnpm dev:bio` | Start Vite dev server for mifi.bio |
|
||||
| `pnpm dev:dev` | Start Vite dev server for mifi.dev |
|
||||
| `pnpm build` | Build static site to `build/` |
|
||||
| `pnpm build:full` | Build + inline critical CSS (run `pnpm run critical-css:install` once to install Chromium) |
|
||||
| `pnpm critical-css:install` | Install Chromium for critical CSS (required once before first `build:full`) |
|
||||
| `pnpm preview` | Serve `build/` locally |
|
||||
| `pnpm check` | Run `svelte-kit sync` and `svelte-check` |
|
||||
| `pnpm lint` | ESLint + Stylelint |
|
||||
| `pnpm format` | Prettier (write) |
|
||||
| `pnpm format:check` | Prettier (check only) |
|
||||
| `pnpm test` | Vitest (watch) |
|
||||
| `pnpm test:run` | Vitest (single run) |
|
||||
| `pnpm test:coverage` | Vitest with coverage |
|
||||
| `pnpm test:e2e` | Playwright e2e (starts preview, then runs tests) |
|
||||
| `pnpm test:e2e:ui` | Playwright e2e in UI mode |
|
||||
| Script | Description |
|
||||
| --------------------------- | ------------------------------------------------------------------------------------------ |
|
||||
| `pnpm dev:bio` | Start Vite dev server for mifi.bio |
|
||||
| `pnpm dev:dev` | Start Vite dev server for mifi.dev |
|
||||
| `pnpm build` | Build static site to `build/` |
|
||||
| `pnpm build:full` | Build + inline critical CSS (run `pnpm run critical-css:install` once to install Chromium) |
|
||||
| `pnpm critical-css:install` | Install Chromium for critical CSS (required once before first `build:full`) |
|
||||
| `pnpm preview` | Serve `build/` locally |
|
||||
| `pnpm check` | Run `svelte-kit sync` and `svelte-check` |
|
||||
| `pnpm lint` | ESLint + Stylelint |
|
||||
| `pnpm format` | Prettier (write) |
|
||||
| `pnpm format:check` | Prettier (check only) |
|
||||
| `pnpm test` | Vitest (watch) |
|
||||
| `pnpm test:run` | Vitest (single run) |
|
||||
| `pnpm test:coverage` | Vitest with coverage |
|
||||
| `pnpm test:e2e` | Playwright e2e (starts preview, then runs tests) |
|
||||
| `pnpm test:e2e:ui` | Playwright e2e in UI mode |
|
||||
|
||||
## Project layout
|
||||
|
||||
|
||||
@@ -5,8 +5,7 @@ services:
|
||||
pull_policy: always
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test:
|
||||
["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://127.0.0.1/"]
|
||||
test: ['CMD', 'wget', '--quiet', '--tries=1', '--spider', 'http://127.0.0.1/']
|
||||
interval: 30s
|
||||
timeout: 3s
|
||||
start_period: 5s
|
||||
|
||||
@@ -81,13 +81,13 @@ try {
|
||||
const scriptPath = join(immutableDir, filename);
|
||||
writeFileSync(scriptPath, content.trimStart(), 'utf-8');
|
||||
const scriptTag = `<script src="./_app/immutable/${filename}"></script>`;
|
||||
html =
|
||||
html.slice(0, found.start) +
|
||||
scriptTag +
|
||||
html.slice(found.end);
|
||||
html = html.slice(0, found.start) + scriptTag + html.slice(found.end);
|
||||
writeFileSync(htmlPath, html, 'utf-8');
|
||||
console.log('Externalized SvelteKit bootstrap to', scriptPath);
|
||||
} catch (err) {
|
||||
console.error('externalize-inline-script failed:', err instanceof Error ? err.message : String(err));
|
||||
console.error(
|
||||
'externalize-inline-script failed:',
|
||||
err instanceof Error ? err.message : String(err),
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -25,16 +25,14 @@
|
||||
url: data.site.url,
|
||||
sameAs: data.site.person.sameAs,
|
||||
}
|
||||
: null
|
||||
: null,
|
||||
);
|
||||
|
||||
// Inject as HTML to avoid Prettier parsing ld+json script body as JS (Babel syntax error)
|
||||
const ldJsonTag = (payload: string) =>
|
||||
'<' + 'script type="application/ld+json">' + payload + '<' + '/script>';
|
||||
const jsonLdHtml = $derived(ldJsonTag(JSON.stringify(jsonLd)));
|
||||
const personLdHtml = $derived(
|
||||
personLd != null ? ldJsonTag(JSON.stringify(personLd)) : ''
|
||||
);
|
||||
const personLdHtml = $derived(personLd != null ? ldJsonTag(JSON.stringify(personLd)) : '');
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
export const prerender = true;
|
||||
export const ssr = true;
|
||||
export const ssr = true;
|
||||
|
||||
@@ -35,7 +35,10 @@
|
||||
<meta property="og:url" content={data.site.url} />
|
||||
<meta property="og:site_name" content={data.site.title} />
|
||||
<meta property="og:locale" content="en_US" />
|
||||
<meta property="og:image" content="{data.site.url}/assets/images/mifi-{data.variant}-og-image.webp" />
|
||||
<meta
|
||||
property="og:image"
|
||||
content="{data.site.url}/assets/images/mifi-{data.variant}-og-image.webp"
|
||||
/>
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
|
||||
@@ -43,7 +46,10 @@
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:title" content={data.site.title} />
|
||||
<meta name="twitter:description" content={data.site.metaDescription} />
|
||||
<meta name="twitter:image" content="{data.site.url}/assets/images/mifi-{data.variant}-twitter-image.webp" />
|
||||
<meta
|
||||
name="twitter:image"
|
||||
content="{data.site.url}/assets/images/mifi-{data.variant}-twitter-image.webp"
|
||||
/>
|
||||
<meta name="twitter:image:width" content="1200" />
|
||||
<meta name="twitter:image:height" content="1200" />
|
||||
</svelte:head>
|
||||
|
||||
@@ -12,5 +12,15 @@
|
||||
"moduleResolution": "bundler"
|
||||
},
|
||||
"include": ["src/**/*.ts", "src/**/*.js", "src/**/*.svelte"],
|
||||
"exclude": ["node_modules", "dist", "build", "coverage", "playwright-report", "test-results", ".svelte-kit", "src/**/*.test.ts", "src/**/*.spec.ts"]
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"dist",
|
||||
"build",
|
||||
"coverage",
|
||||
"playwright-report",
|
||||
"test-results",
|
||||
".svelte-kit",
|
||||
"src/**/*.test.ts",
|
||||
"src/**/*.spec.ts"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user