diff --git a/fotobox/frontend-app/package-lock.json b/fotobox/frontend-app/package-lock.json index bf3a6ac2..d9ba07b8 100644 --- a/fotobox/frontend-app/package-lock.json +++ b/fotobox/frontend-app/package-lock.json @@ -20,6 +20,7 @@ "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", "carbon-components-svelte": "^0.85.2", + "carbon-preprocess-svelte": "^0.11.11", "svelte": "^4.2.7", "vite": "^5.0.3" }, @@ -1075,6 +1076,19 @@ "integrity": "sha512-IgImInaf7rcEKhM3LkNpdA5UNGYD3+qiu30l/VyNm4ldrojDkwq64jbPPc3tfF4mrtesT54ptAsd5rBxbd7hRA==", "license": "Apache-2.0" }, + "node_modules/carbon-preprocess-svelte": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/carbon-preprocess-svelte/-/carbon-preprocess-svelte-0.11.11.tgz", + "integrity": "sha512-F8dZ+evXjmGG/l7gZKHwX5vwJ5CngPFIIWyTsxoBKZqIyCgGZJh83X61q2ZE+jG1vhktZCAd18Z6Yyw1WQMN/Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "estree-walker": "^2.0.2", + "magic-string": "^0.30.17", + "postcss": "^8.5.3", + "postcss-discard-empty": "^7.0.0" + } + }, "node_modules/chevrotain": { "version": "11.0.3", "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz", @@ -2420,6 +2434,19 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-discard-empty": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", + "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.12.0 || ^20.9.0 || >=22.0" + }, + "peerDependencies": { + "postcss": "^8.4.32" + } + }, "node_modules/qrcode": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", diff --git a/fotobox/frontend-app/package.json b/fotobox/frontend-app/package.json index 9a1de3d9..1c832be8 100644 --- a/fotobox/frontend-app/package.json +++ b/fotobox/frontend-app/package.json @@ -13,6 +13,7 @@ "@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0", "carbon-components-svelte": "^0.85.2", + "carbon-preprocess-svelte": "^0.11.11", "svelte": "^4.2.7", "vite": "^5.0.3" }, diff --git a/fotobox/frontend-app/svelte.config.js b/fotobox/frontend-app/svelte.config.js index 37d06a30..cdf68379 100644 --- a/fotobox/frontend-app/svelte.config.js +++ b/fotobox/frontend-app/svelte.config.js @@ -1,7 +1,12 @@ import adapter from '@sveltejs/adapter-node'; +import { optimizeImports } from 'carbon-preprocess-svelte'; /** @type {import('@sveltejs/kit').Config} */ const config = { + preprocess: [ + // Optimize Carbon imports for faster development and build times. + optimizeImports() + ], kit: { // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. // If your environment is not supported, or you settled on a specific environment, switch out the adapter. diff --git a/fotobox/frontend-app/vite.config.js b/fotobox/frontend-app/vite.config.js index bbf8c7da..bbcf1910 100644 --- a/fotobox/frontend-app/vite.config.js +++ b/fotobox/frontend-app/vite.config.js @@ -1,6 +1,12 @@ import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; +import { optimizeCss } from 'carbon-preprocess-svelte'; export default defineConfig({ - plugins: [sveltekit()] + plugins: [ + sveltekit(), + + // Optimize CSS from `carbon-components-svelte` when building for production. + optimizeCss() + ] });