Host: MacBook Pro 16" nov 2024, 48GB, Tahoe 26.4.1
pnpm: 10.33.0
Node: 25.8.1
Bun: 1.3.10
Nx workspace, pnpm monorepo
output:
build % ./app
120208 | init_lazy_helpers();
120209 | init_dependency_container();
120210 | init_decorators2();
120211 | init_factories();
120212 | init_providers();
120213 | throw new Error(`tsyringe requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.`);
^
error: tsyringe requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.
at <anonymous> (/$bunfs/root/app:120213:11)
at <anonymous> (/$bunfs/root/app:46:50)
at <anonymous> (/$bunfs/root/app:121660:13)
at <anonymous> (/$bunfs/root/app:46:50)
at <anonymous> (/$bunfs/root/app:123752:15)
at <anonymous> (/$bunfs/root/app:46:50)
at <anonymous> (/$bunfs/root/app:124460:21)
at <anonymous> (/$bunfs/root/app:46:50)
at <anonymous> (/$bunfs/root/app:124516:15)
at <anonymous> (/$bunfs/root/app:46:50)
Bun v1.3.10 (macOS arm64)
package.json of the app:
{
// ...
"type": "module",
"scripts": {
"build": "vite build",
// ...
},
"devDependencies": {
"@better-auth/cli": "~1.4.21",
"@eslint/compat": "^2.0.3",
"@eslint/js": "^10.0.1",
"@inlang/paraglide-js": "^2.10.0",
"@module-federation/vite": "^1.13.6",
"@playwright/test": "^1.58.2",
"@sveltejs/adapter-auto": "^7.0.0",
"@sveltejs/kit": "2.57.1",
"@sveltejs/vite-plugin-svelte": "^6.2.4",
"@tailwindcss/forms": "^0.5.11",
"@tailwindcss/typography": "^0.5.19",
"@tailwindcss/vite": "^4.1.18",
"@types/jsonwebtoken": "^9.0.10",
"@types/lodash": "^4.17.24",
"@types/luxon": "^3.7.1",
"@types/node": "^24",
"@vitest/browser-playwright": "^4.1.0",
"eslint": "^10.0.3",
"eslint-plugin-svelte": "^3.15.2",
"globals": "^17.4.0",
"license-report": "^6.8.2",
"mdsvex": "^0.12.6",
"playwright": "^1.58.2",
"prettier": "^3.8.1",
"prettier-plugin-svelte": "^3.4.1",
"prettier-plugin-tailwindcss": "^0.7.2",
"svelte": "^5.54.0",
"svelte-check": "^4.4.2",
"tailwindcss": "^4.1.18",
"typescript": "^5.9.3",
"typescript-eslint": "^8.57.0",
"vite": "7.3.2",
"vite-plugin-devtools-json": "^1.0.0",
"vitest": "^4.1.0",
"vitest-browser-svelte": "^2.0.2"
},
"dependencies": {
"@auth/sveltekit": "^1.11.1",
"@better-auth/api-key": "^1.5.6",
"@better-auth/passkey": "^1.5.6",
"@cartamd/plugin-emoji": "^4.3.0",
"@fontsource-variable/inter": "^5.2.8",
"@jesterkit/exe-sveltekit": "^0.1.7",
"@lucide/svelte": "^1.7.0",
"@module-federation/enhanced": "^2.3.0",
"@sanity/comlink": "^4.0.1",
"@sentry/sveltekit": "^10.46.0",
"@svelte-put/clickoutside": "^4.0.0",
"@sveltejs/adapter-node": "^5.5.4",
"@tabler/icons-svelte": "^3.41.1",
"@tanstack/svelte-query": "^6.1.10",
"accept-language": "^3.0.20",
"axios": "1.15.0",
"bcp-47-match": "^2.0.3",
"bcp-47-normalize": "^2.3.0",
"better-auth": "^1.5.4",
"better-auth-localization": "^3.0.0",
"bits-ui": "^2.16.5",
"browser-fs-access": "^0.38.0",
"bson": "^7.2.0",
"carta-md": "^4.11.1",
"carta-plugin-imsize": "^2.1.0",
"carta-plugin-video": "^2.1.0",
"clsx": "^2.1.1",
"cookie": "^1.1.1",
"fuse.js": "^7.1.0",
"isomorphic-dompurify": "^3.7.1",
"jsonwebtoken": "^9.0.3",
"lodash": "^4.17.23",
"luxon": "^3.7.2",
"mini-signals": "^3.0.0",
"mode-watcher": "^1.1.0",
"print-js": "^1.6.0",
"runed": "^0.37.1",
"surreal-better-auth": "2.0.0-beta.8",
"surrealdb": "^2.0.3",
"svelte-keyboard-shortcuts": "^0.0.2",
"svelte-sonner": "^1.1.0",
"sveltekit-flash-message": "^2.4.6",
"sveltekit-superforms": "^2.30.1",
"tailwind-merge": "^3.5.0",
"tailwind-variants": "^3.2.2",
"tw-animate-css": "^1.4.0",
"ulid": "^3.0.2",
"unescape": "^1.0.1",
"zod": "^4.3.6"
},
"nx": {
"targets": {
"build": {
"cache": true
}
}
}
}
svelte.config.ts:
import {mdsvex} from 'mdsvex';
import adapter from "@jesterkit/exe-sveltekit";
import {relative, sep} from 'node:path';
/** @type {import('@sveltejs/kit').Config} */
const config = {
compilerOptions: {
// defaults to rune mode for the project, execept for `node_modules`. Can be removed in svelte 6.
runes: ({filename}) => {
const relativePath = relative(import.meta.dirname, filename);
const pathSegments = relativePath.toLowerCase().split(sep);
const isExternalLibrary = pathSegments.includes('node_modules');
return isExternalLibrary ? undefined : true;
},
},
kit: {
// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
// See https://svelte.dev/docs/kit/adapters for more information about adapters.
adapter: adapter({
embedStatic: true,
binaryName: 'app',
out: 'build'
}),
experimental: {
instrumentation: {
server: true
}
},
},
preprocess: [mdsvex({extensions: ['.svx', '.md']})],
extensions: ['.svelte', '.svx', '.md'],
};
export default config;
vite.config.ts:
import {paraglideVitePlugin} from '@inlang/paraglide-js';
import devtoolsJson from 'vite-plugin-devtools-json';
import tailwindcss from '@tailwindcss/vite';
import {defineConfig} from 'vitest/config';
import {playwright} from '@vitest/browser-playwright';
import {sveltekit} from '@sveltejs/kit/vite';
import {federation} from '@module-federation/vite';
import {readFileSync} from 'fs';
import {fileURLToPath} from 'url';
import {exec} from 'node:child_process';
import {sentrySvelteKit} from '@sentry/sveltekit';
export default defineConfig({
server: {
port: 3001,
cors: true,
},
define: {
'process.env.NODE_ENV': '"production"',
PKG: JSON.parse(readFileSync(fileURLToPath(new URL('package.json', import.meta.url)), 'utf8'))
},
plugins: [
sentrySvelteKit({
adapter: 'node'
}),
tailwindcss(),
sveltekit(),
devtoolsJson(),
paraglideVitePlugin({project: '../../project.inlang', outdir: './src/lib/paraglide'}),
],
test: {
// ...
},
});
Host: MacBook Pro 16" nov 2024, 48GB, Tahoe 26.4.1
pnpm: 10.33.0
Node: 25.8.1
Bun: 1.3.10
Nx workspace, pnpm monorepo
output:
package.json of the app:
{ // ... "type": "module", "scripts": { "build": "vite build", // ... }, "devDependencies": { "@better-auth/cli": "~1.4.21", "@eslint/compat": "^2.0.3", "@eslint/js": "^10.0.1", "@inlang/paraglide-js": "^2.10.0", "@module-federation/vite": "^1.13.6", "@playwright/test": "^1.58.2", "@sveltejs/adapter-auto": "^7.0.0", "@sveltejs/kit": "2.57.1", "@sveltejs/vite-plugin-svelte": "^6.2.4", "@tailwindcss/forms": "^0.5.11", "@tailwindcss/typography": "^0.5.19", "@tailwindcss/vite": "^4.1.18", "@types/jsonwebtoken": "^9.0.10", "@types/lodash": "^4.17.24", "@types/luxon": "^3.7.1", "@types/node": "^24", "@vitest/browser-playwright": "^4.1.0", "eslint": "^10.0.3", "eslint-plugin-svelte": "^3.15.2", "globals": "^17.4.0", "license-report": "^6.8.2", "mdsvex": "^0.12.6", "playwright": "^1.58.2", "prettier": "^3.8.1", "prettier-plugin-svelte": "^3.4.1", "prettier-plugin-tailwindcss": "^0.7.2", "svelte": "^5.54.0", "svelte-check": "^4.4.2", "tailwindcss": "^4.1.18", "typescript": "^5.9.3", "typescript-eslint": "^8.57.0", "vite": "7.3.2", "vite-plugin-devtools-json": "^1.0.0", "vitest": "^4.1.0", "vitest-browser-svelte": "^2.0.2" }, "dependencies": { "@auth/sveltekit": "^1.11.1", "@better-auth/api-key": "^1.5.6", "@better-auth/passkey": "^1.5.6", "@cartamd/plugin-emoji": "^4.3.0", "@fontsource-variable/inter": "^5.2.8", "@jesterkit/exe-sveltekit": "^0.1.7", "@lucide/svelte": "^1.7.0", "@module-federation/enhanced": "^2.3.0", "@sanity/comlink": "^4.0.1", "@sentry/sveltekit": "^10.46.0", "@svelte-put/clickoutside": "^4.0.0", "@sveltejs/adapter-node": "^5.5.4", "@tabler/icons-svelte": "^3.41.1", "@tanstack/svelte-query": "^6.1.10", "accept-language": "^3.0.20", "axios": "1.15.0", "bcp-47-match": "^2.0.3", "bcp-47-normalize": "^2.3.0", "better-auth": "^1.5.4", "better-auth-localization": "^3.0.0", "bits-ui": "^2.16.5", "browser-fs-access": "^0.38.0", "bson": "^7.2.0", "carta-md": "^4.11.1", "carta-plugin-imsize": "^2.1.0", "carta-plugin-video": "^2.1.0", "clsx": "^2.1.1", "cookie": "^1.1.1", "fuse.js": "^7.1.0", "isomorphic-dompurify": "^3.7.1", "jsonwebtoken": "^9.0.3", "lodash": "^4.17.23", "luxon": "^3.7.2", "mini-signals": "^3.0.0", "mode-watcher": "^1.1.0", "print-js": "^1.6.0", "runed": "^0.37.1", "surreal-better-auth": "2.0.0-beta.8", "surrealdb": "^2.0.3", "svelte-keyboard-shortcuts": "^0.0.2", "svelte-sonner": "^1.1.0", "sveltekit-flash-message": "^2.4.6", "sveltekit-superforms": "^2.30.1", "tailwind-merge": "^3.5.0", "tailwind-variants": "^3.2.2", "tw-animate-css": "^1.4.0", "ulid": "^3.0.2", "unescape": "^1.0.1", "zod": "^4.3.6" }, "nx": { "targets": { "build": { "cache": true } } } }svelte.config.ts:
vite.config.ts: