vitejs / vite

Next generation frontend tooling. It's fast!
http://vite.dev
MIT License
67.91k stars 6.11k forks source link

Vite bundles external dependencies #14808

Closed danipatko closed 11 months ago

danipatko commented 11 months ago

Describe the bug

I'm building a website for production in SvelteKit, with adapter-node. I have an API route, where images are served and resized using sharp. The sharp documentation states that the sharp package should be excluded from bundling.

This is my vite.config.ts:

import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
import { fileURLToPath } from 'url';

export default defineConfig({
    plugins: [sveltekit()],
    // takes no effect
    build: {
        rollupOptions: {
            // https://rollupjs.org/configuration-options/#external
            external: [
                'sharp', // the module name
                /node_modules\/sharp/, // regular expression
                fileURLToPath(new URL('node_modules/sharp', import.meta.url)) // absolute path
            ]
        }
    },
    // takes no effect
    optimizeDeps: {
        exclude: ['sharp']
    },

    // more stuff I tried

    // esbuild should not be relevant in production builds
    // https://vitejs.dev/guide/dep-pre-bundling.html
    esbuild: {
        exclude: ['sharp']
    },
    // sveltekit API route should not be prerendered
    ssr: {
        external: ['sharp']
    }
});

Running vite build finishes without errors, however if you take a look into the build folder, you can see sharp was bundled into build/server/chunks, as a commonjs module. Requesting the image endpoint will result in the following error:

ReferenceError: __dirname is not defined in ES module scope
This file is being treated as an ES module because it has a '.js' file extension and 'Y:\code\project\package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.
    at requireLibvips (file:///Y:/code/project/build/server/chunks/index3-613be37a.js:8694:31)
    at requireConstructor (file:///Y:/code/project/build/server/chunks/index3-613be37a.js:8871:2)
    at requireLib (file:///Y:/code/project/build/server/chunks/index3-613be37a.js:15703:16)
    at file:///Y:/code/project/build/server/chunks/index3-613be37a.js:15717:18
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)
    at async Promise.all (index 0)
    at async ESMLoader.import (node:internal/modules/esm/loader:530:24)
    at async Promise.all (index 2)
    at async render_page (file:///Y:/code/project/build/server/index.js:2485:19)
    at async resolve (file:///Y:/code/project/build/server/index.js:3505:22)

The issue is not present when using vite preview. May be related to #11048 (but it doesn't fail on build).

Any help would be greatly appreciated...

Reproduction

https://stackblitz.com/edit/sveltejs-kit-template-default-zc9wbg?file=vite.config.js

Steps to reproduce

run npm run build then run the production build using the svelte node adapter: node build/

System Info

System:
    OS: Windows 10 10.0.22621
    CPU: (16) x64 AMD Ryzen 7 3700X 8-Core Processor
    Memory: 4.11 GB / 15.95 GB
  Binaries:
    Node: 18.12.1 - C:\Program Files\nodejs\node.EXE
    npm: 8.19.2 - C:\Program Files\nodejs\npm.CMD
    pnpm: 8.6.3 - ~\scoop\shims\pnpm.EXE
  Browsers:
    Edge: Chromium (118.0.2088.76)
    Internet Explorer: 11.0.22621.1
  npmPackages:
    vite: ^4.4.9 => 4.4.9

Used Package Manager

npm

Logs

Click to expand! ```shell ❯ vite build -- --debug vite:config bundled config file loaded in 2113.00ms +0ms vite:vite-plugin-svelte adding bare svelte packages to optimizeDeps.include: svelte/animate, svelte/easing, svelte/internal, svelte/motion, svelte/store, svelte/transition, svelte, svelte/internal/disclose-version +0ms vite:vite-plugin-svelte extra config for dependencies generated by vitefu { optimizeDeps: { include: [], exclude: [] }, ssr: { noExternal: [], external: [] } } +3ms vite:vite-plugin-svelte post-processed extra config for dependencies { optimizeDeps: { include: [], exclude: [] }, ssr: { noExternal: [], external: [] } } +0ms vite:vite-plugin-svelte enabling "experimental.hmrPartialAccept" in vite config +1ms vite:vite-plugin-svelte additional vite config { resolve: { dedupe: [ 'svelte/animate', 'svelte/easing', 'svelte/internal', 'svelte/motion', 'svelte/ssr', 'svelte/store', 'svelte/transition', 'svelte', 'svelte/internal/disclose-version', 'svelte-hmr/runtime/hot-api-esm.js', 'svelte-hmr/runtime/proxy-adapter-dom.js', 'svelte-hmr' ], conditions: [ 'svelte' ] }, optimizeDeps: { include: [ 'svelte/animate', 'svelte/easing', 'svelte/internal', 'svelte/motion', 'svelte/store', 'svelte/transition', 'svelte', 'svelte/internal/disclose-version' ], exclude: [ 'svelte-hmr' ] }, ssr: { external: [], noExternal: [ 'svelte', /^svelte\// ] }, experimental: { hmrPartialAccept: true } } +0ms vite:vite-plugin-svelte resolved options { hot: false, compilerOptions: { css: 'external', dev: false, hydratable: true }, extensions: [ '.svelte' ], emitCss: true, prebundleSvelteLibraries: false, configFile: false, preprocess: { script: [Function: script], markup: [Function: markup] }, onwarn: undefined, root: '/home/projects/sveltejs-kit-template-default-zc9wbg', isBuild: true, isServe: false, isDebug: true, isProduction: true, stats: VitePluginSvelteStats {} } +22ms vite:config using resolved config: { vite:config plugins: [ vite:config 'vite:build-metadata', vite:config 'vite:watch-package-data', vite:config 'vite:pre-alias', vite:config 'alias', vite:config 'vite-plugin-svelte', vite:config 'vite:modulepreload-polyfill', vite:config 'vite:resolve', vite:config 'vite:html-inline-proxy', vite:config 'vite:css', vite:config 'vite:esbuild', vite:config 'vite:json', vite:config 'vite:wasm-helper', vite:config 'vite:worker', vite:config 'vite:asset', vite:config 'vite-plugin-sveltekit-setup', vite:config 'vite-plugin-sveltekit-virtual-modules', vite:config 'vite-plugin-sveltekit-guard', vite:config 'vite-plugin-sveltekit-compile', vite:config 'vite:wasm-fallback', vite:config 'vite:define', vite:config 'vite:css-post', vite:config 'vite:build-html', vite:config 'vite:worker-import-meta-url', vite:config 'vite:asset-import-meta-url', vite:config 'vite:force-systemjs-wrap-complete', vite:config 'commonjs', vite:config 'vite:data-uri', vite:config 'vite:dynamic-import-vars', vite:config 'vite:import-glob', vite:config 'vite:build-import-analysis', vite:config 'vite:esbuild-transpile', vite:config 'vite:manifest', vite:config 'vite:reporter', vite:config 'vite:load-fallback' vite:config ], vite:config build: { vite:config target: 'node16.14', vite:config cssTarget: 'node16.14', vite:config outDir: '/home/projects/sveltejs-kit-template-default-zc9wbg/.svelte-kit/output/server', vite:config assetsDir: 'assets', vite:config assetsInlineLimit: 4096, vite:config cssCodeSplit: true, vite:config sourcemap: false, vite:config rollupOptions: { vite:config external: [Array], vite:config input: [Object], vite:config output: [Object], vite:config preserveEntrySignatures: 'strict' vite:config }, vite:config minify: false, vite:config terserOptions: {}, vite:config write: true, vite:config emptyOutDir: null, vite:config copyPublicDir: false, vite:config manifest: '.vite/manifest.json', vite:config lib: false, vite:config ssr: true, vite:config ssrManifest: false, vite:config ssrEmitAssets: true, vite:config reportCompressedSize: true, vite:config chunkSizeWarningLimit: 500, vite:config watch: null, vite:config cssMinify: true, vite:config commonjsOptions: { include: [Array], extensions: [Array] }, vite:config dynamicImportVarsOptions: { warnOnError: true, exclude: [Array] }, vite:config modulePreload: { polyfill: true } vite:config }, vite:config optimizeDeps: { vite:config disabled: 'build', vite:config exclude: [ 'sharp', 'svelte-hmr', '@sveltejs/kit', '$app', '$env' ], vite:config include: [ vite:config 'svelte/animate', vite:config 'svelte/easing', vite:config 'svelte/internal', vite:config 'svelte/motion', vite:config 'svelte/store', vite:config 'svelte/transition', vite:config 'svelte', vite:config 'svelte/internal/disclose-version' vite:config ], vite:config esbuildOptions: { preserveSymlinks: false } vite:config }, vite:config esbuild: { jsxDev: false, exclude: [ 'sharp' ] }, vite:config ssr: { vite:config format: 'esm', vite:config target: 'node', vite:config external: [ 'sharp' ], vite:config noExternal: [ 'svelte', /^svelte\//, 'esm-env', '@sveltejs/kit' ], vite:config optimizeDeps: { disabled: true, esbuildOptions: [Object] } vite:config }, vite:config resolve: { vite:config mainFields: [ 'svelte', 'module', 'jsnext:main', 'jsnext' ], vite:config browserField: true, vite:config conditions: [ 'svelte' ], vite:config extensions: [ vite:config '.mjs', '.js', vite:config '.mts', '.ts', vite:config '.jsx', '.tsx', vite:config '.json' vite:config ], vite:config dedupe: [ vite:config 'svelte/animate', vite:config 'svelte/easing', vite:config 'svelte/internal', vite:config 'svelte/motion', vite:config 'svelte/ssr', vite:config 'svelte/store', vite:config 'svelte/transition', vite:config 'svelte', vite:config 'svelte/internal/disclose-version', vite:config 'svelte-hmr/runtime/hot-api-esm.js', vite:config 'svelte-hmr/runtime/proxy-adapter-dom.js', vite:config 'svelte-hmr' vite:config ], vite:config preserveSymlinks: false, vite:config alias: [ [Object], [Object], [Object], [Object], [Object] ] vite:config }, vite:config experimental: { importGlobRestoreExtension: false, hmrPartialAccept: true }, vite:config root: '/home/projects/sveltejs-kit-template-default-zc9wbg', vite:config server: { vite:config preTransformRequests: true, vite:config cors: { preflightContinue: true }, vite:config fs: { strict: true, allow: [Array], deny: [Array] }, vite:config sourcemapIgnoreList: [Function: sourcemapIgnoreList], vite:config watch: { ignored: [Array] }, vite:config middlewareMode: false vite:config }, vite:config preview: { vite:config port: undefined, vite:config strictPort: undefined, vite:config host: undefined, vite:config https: undefined, vite:config open: undefined, vite:config proxy: undefined, vite:config cors: { preflightContinue: true }, vite:config headers: undefined vite:config }, vite:config define: { vite:config __SVELTEKIT_ADAPTER_NAME__: '"@sveltejs/adapter-node"', vite:config __SVELTEKIT_APP_VERSION_FILE__: '"_app/version.json"', vite:config __SVELTEKIT_APP_VERSION_POLL_INTERVAL__: '0', vite:config __SVELTEKIT_DEV__: 'false', vite:config __SVELTEKIT_EMBEDDED__: 'false' vite:config }, vite:config base: '/', vite:config publicDir: '/home/projects/sveltejs-kit-template-default-zc9wbg/static', vite:config worker: { vite:config format: 'iife', vite:config plugins: [ vite:config 'vite:build-metadata', vite:config 'vite:watch-package-data', vite:config 'vite:pre-alias', vite:config 'alias', vite:config 'vite:modulepreload-polyfill', vite:config 'vite:resolve', vite:config 'vite:html-inline-proxy', vite:config 'vite:css', vite:config 'vite:esbuild', vite:config 'vite:json', vite:config 'vite:wasm-helper', vite:config 'vite:worker', vite:config 'vite:asset', vite:config 'vite:wasm-fallback', vite:config 'vite:define', vite:config 'vite:css-post', vite:config 'vite:build-html', vite:config 'vite:worker-import-meta-url', vite:config 'vite:asset-import-meta-url', vite:config 'vite:force-systemjs-wrap-complete', vite:config 'commonjs', vite:config 'vite:data-uri', vite:config 'vite:worker-post', vite:config 'vite:dynamic-import-vars', vite:config 'vite:import-glob', vite:config 'vite:build-import-analysis', vite:config 'vite:esbuild-transpile', vite:config 'vite:load-fallback' vite:config ], vite:config rollupOptions: { output: [Object] }, vite:config getSortedPlugins: [Function: getSortedPlugins], vite:config getSortedPluginHooks: [Function: getSortedPluginHooks] vite:config }, vite:config configFile: '/home/projects/sveltejs-kit-template-default-zc9wbg/vite.config.js', vite:config configFileDependencies: [ vite:config '/home/projects/sveltejs-kit-template-default-zc9wbg/vite.config.js' vite:config ], vite:config inlineConfig: { vite:config root: undefined, vite:config base: undefined, vite:config mode: undefined, vite:config configFile: undefined, vite:config logLevel: undefined, vite:config clearScreen: undefined, vite:config optimizeDeps: { force: undefined }, vite:config build: {} vite:config }, vite:config rawBase: '/', vite:config cacheDir: '/home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/.vite', vite:config command: 'build', vite:config mode: 'production', vite:config isWorker: false, vite:config mainConfig: null, vite:config isProduction: true, vite:config css: undefined, vite:config envDir: '/home/projects/sveltejs-kit-template-default-zc9wbg', vite:config env: { BASE_URL: '/', MODE: 'production', DEV: false, PROD: true }, vite:config assetsInclude: [Function: assetsInclude], vite:config logger: { vite:config hasWarned: true, vite:config info: [Function: info], vite:config warn: [Function: warn], vite:config warnOnce: [Function: warnOnce], vite:config error: [Function: error], vite:config clearScreen: [Function: clearScreen], vite:config hasErrorLogged: [Function: hasErrorLogged] vite:config }, vite:config packageCache: Map(1) { vite:config 'fnpd_/home/projects/sveltejs-kit-template-default-zc9wbg' => { vite:config dir: '/home/projects/sveltejs-kit-template-default-zc9wbg', vite:config data: [Object], vite:config hasSideEffects: [Function: hasSideEffects], vite:config webResolvedImports: {}, vite:config nodeResolvedImports: {}, vite:config setResolvedCache: [Function: setResolvedCache], vite:config getResolvedCache: [Function: getResolvedCache] vite:config }, vite:config set: [Function (anonymous)] vite:config }, vite:config createResolver: [Function: createResolver], vite:config appType: 'spa', vite:config getSortedPlugins: [Function: getSortedPlugins], vite:config getSortedPluginHooks: [Function: getSortedPluginHooks] vite:config } +154ms vite v4.5.0 building SSR bundle for production... vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/about/+page.svelte +47ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+layout.svelte +46ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@sveltejs/kit/src/runtime/components/error.svelte +0ms 18:57:21 [vite-plugin-svelte] /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+page.svelte:17:4 A11y: element should have an alt attribute 15: 16: 17: ^ 18: 19: vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+page.svelte +0ms transforming (1) node_modules/@sveltejs/kit/src/runtime/server/index.js vite:vite-plugin-svelte resolveId resolved virtual css module /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+layout.svelte?svelte&type=style&lang.css +34ms vite:vite-plugin-svelte resolveId resolved virtual css module /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+page.svelte?svelte&type=style&lang.css +1ms vite:vite-plugin-svelte load returns css for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+layout.svelte +2ms vite:vite-plugin-svelte load returns css for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+page.svelte +0ms vite:esbuild 139.00ms tsconfck init /home/projects/sveltejs-kit-template-default-zc9wbg +0ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/.svelte-kit/generated/root.svelte +53ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Header.svelte +0ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Counter.svelte +0ms vite:vite-plugin-svelte resolveId resolved virtual css module /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Header.svelte?svelte&type=style&lang.css +49ms vite:vite-plugin-svelte resolveId resolved virtual css module /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Counter.svelte?svelte&type=style&lang.css +0ms vite:vite-plugin-svelte load returns css for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Header.svelte +10ms vite:vite-plugin-svelte load returns css for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Counter.svelte +0ms transforming (63) node_modules/svelte/src/shared/version.js vite:resolve 1.00ms @fontsource/fira-mono -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/index.css +0ms vite:resolve 0.00ms ./files/fira-mono-cyrillic-ext-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-cyrillic-ext-400-normal.woff2 +0ms vite:resolve 0.00ms ./files/fira-mono-cyrillic-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-cyrillic-400-normal.woff2 +0ms vite:resolve 0.00ms ./files/fira-mono-greek-ext-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-greek-ext-400-normal.woff2 +0ms vite:resolve 0.00ms ./files/fira-mono-greek-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-greek-400-normal.woff2 +0ms vite:resolve 0.00ms ./files/fira-mono-latin-ext-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-latin-ext-400-normal.woff2 +0ms vite:resolve 0.00ms ./files/fira-mono-latin-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-latin-400-normal.woff2 +0ms vite:resolve 1.00ms ./files/fira-mono-all-400-normal.woff -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-all-400-normal.woff +2ms ✓ 92 modules transformed. vite:vite-plugin-svelte:stats ssr compile done. vite:vite-plugin-svelte:stats package files time avg vite:vite-plugin-svelte:stats kit-template-default 7 0.10s 15.0ms +0ms vite:config bundled config file loaded in 77.00ms +2s vite:vite-plugin-svelte adding bare svelte packages to optimizeDeps.include: svelte/animate, svelte/easing, svelte/internal, svelte/motion, svelte/store, svelte/transition, svelte, svelte/internal/disclose-version +2s vite:vite-plugin-svelte extra config for dependencies generated by vitefu { optimizeDeps: { include: [], exclude: [] }, ssr: { noExternal: [], external: [] } } +2ms vite:vite-plugin-svelte post-processed extra config for dependencies { optimizeDeps: { include: [], exclude: [] }, ssr: { noExternal: [], external: [] } } +0ms vite:vite-plugin-svelte enabling "experimental.hmrPartialAccept" in vite config +1ms vite:vite-plugin-svelte additional vite config { resolve: { dedupe: [ 'svelte/animate', 'svelte/easing', 'svelte/internal', 'svelte/motion', 'svelte/ssr', 'svelte/store', 'svelte/transition', 'svelte', 'svelte/internal/disclose-version', 'svelte-hmr/runtime/hot-api-esm.js', 'svelte-hmr/runtime/proxy-adapter-dom.js', 'svelte-hmr' ], conditions: [ 'svelte' ] }, optimizeDeps: { include: [ 'svelte/animate', 'svelte/easing', 'svelte/internal', 'svelte/motion', 'svelte/store', 'svelte/transition', 'svelte', 'svelte/internal/disclose-version' ], exclude: [ 'svelte-hmr' ] }, ssr: { external: [], noExternal: [ 'svelte', /^svelte\// ] }, experimental: { hmrPartialAccept: true } } +0ms vite:vite-plugin-svelte resolved options { hot: false, compilerOptions: { css: 'external', dev: false, hydratable: true }, extensions: [ '.svelte' ], emitCss: true, prebundleSvelteLibraries: false, configFile: false, preprocess: { script: [Function: script], markup: [Function: markup] }, onwarn: undefined, root: '/home/projects/sveltejs-kit-template-default-zc9wbg', isBuild: true, isServe: false, isDebug: true, isProduction: true, stats: VitePluginSvelteStats {} } +4ms vite:config using resolved config: { vite:config plugins: [ vite:config 'vite:build-metadata', vite:config 'vite:watch-package-data', vite:config 'vite:pre-alias', vite:config 'alias', vite:config 'vite-plugin-svelte', vite:config 'vite:modulepreload-polyfill', vite:config 'vite:resolve', vite:config 'vite:html-inline-proxy', vite:config 'vite:css', vite:config 'vite:esbuild', vite:config 'vite:json', vite:config 'vite:wasm-helper', vite:config 'vite:worker', vite:config 'vite:asset', vite:config 'vite-plugin-sveltekit-setup', vite:config 'vite-plugin-sveltekit-virtual-modules', vite:config 'vite-plugin-sveltekit-guard', vite:config 'vite-plugin-sveltekit-compile', vite:config 'vite:wasm-fallback', vite:config 'vite:define', vite:config 'vite:css-post', vite:config 'vite:build-html', vite:config 'vite:worker-import-meta-url', vite:config 'vite:asset-import-meta-url', vite:config 'vite:force-systemjs-wrap-complete', vite:config 'commonjs', vite:config 'vite:data-uri', vite:config 'vite:dynamic-import-vars', vite:config 'vite:import-glob', vite:config 'vite:build-import-analysis', vite:config 'vite:esbuild-transpile', vite:config 'vite:terser', vite:config 'vite:manifest', vite:config 'vite:reporter', vite:config 'vite:load-fallback' vite:config ], vite:config build: { vite:config target: [ 'es2020', 'edge88', 'firefox78', 'chrome87', 'safari14' ], vite:config cssTarget: [ 'es2020', 'edge88', 'firefox78', 'chrome87', 'safari14' ], vite:config outDir: '/home/projects/sveltejs-kit-template-default-zc9wbg/.svelte-kit/output/client', vite:config assetsDir: 'assets', vite:config assetsInlineLimit: 4096, vite:config cssCodeSplit: true, vite:config sourcemap: false, vite:config rollupOptions: { vite:config external: [Array], vite:config input: [Object], vite:config output: [Object], vite:config preserveEntrySignatures: 'strict' vite:config }, vite:config minify: 'esbuild', vite:config terserOptions: {}, vite:config write: true, vite:config emptyOutDir: null, vite:config copyPublicDir: true, vite:config manifest: '.vite/manifest.json', vite:config lib: false, vite:config ssr: false, vite:config ssrManifest: false, vite:config ssrEmitAssets: true, vite:config reportCompressedSize: true, vite:config chunkSizeWarningLimit: 500, vite:config watch: null, vite:config cssMinify: true, vite:config commonjsOptions: { include: [Array], extensions: [Array] }, vite:config dynamicImportVarsOptions: { warnOnError: true, exclude: [Array] }, vite:config modulePreload: { polyfill: true } vite:config }, vite:config optimizeDeps: { vite:config disabled: 'build', vite:config exclude: [ 'sharp', 'svelte-hmr', '@sveltejs/kit', '$app', '$env' ], vite:config include: [ vite:config 'svelte/animate', vite:config 'svelte/easing', vite:config 'svelte/internal', vite:config 'svelte/motion', vite:config 'svelte/store', vite:config 'svelte/transition', vite:config 'svelte', vite:config 'svelte/internal/disclose-version' vite:config ], vite:config esbuildOptions: { preserveSymlinks: false } vite:config }, vite:config esbuild: { jsxDev: false, exclude: [ 'sharp' ] }, vite:config ssr: { vite:config format: 'esm', vite:config target: 'node', vite:config external: [ 'sharp' ], vite:config noExternal: [ 'svelte', /^svelte\//, 'esm-env', '@sveltejs/kit' ], vite:config optimizeDeps: { disabled: true, esbuildOptions: [Object] } vite:config }, vite:config configFile: '/home/projects/sveltejs-kit-template-default-zc9wbg/vite.config.js', vite:config mode: 'production', vite:config resolve: { vite:config mainFields: [ 'svelte', 'module', 'jsnext:main', 'jsnext' ], vite:config browserField: true, vite:config conditions: [ 'svelte' ], vite:config extensions: [ vite:config '.mjs', '.js', vite:config '.mts', '.ts', vite:config '.jsx', '.tsx', vite:config '.json' vite:config ], vite:config dedupe: [ vite:config 'svelte/animate', vite:config 'svelte/easing', vite:config 'svelte/internal', vite:config 'svelte/motion', vite:config 'svelte/ssr', vite:config 'svelte/store', vite:config 'svelte/transition', vite:config 'svelte', vite:config 'svelte/internal/disclose-version', vite:config 'svelte-hmr/runtime/hot-api-esm.js', vite:config 'svelte-hmr/runtime/proxy-adapter-dom.js', vite:config 'svelte-hmr' vite:config ], vite:config preserveSymlinks: false, vite:config alias: [ [Object], [Object], [Object], [Object], [Object] ] vite:config }, vite:config experimental: { importGlobRestoreExtension: false, hmrPartialAccept: true }, vite:config root: '/home/projects/sveltejs-kit-template-default-zc9wbg', vite:config server: { vite:config preTransformRequests: true, vite:config cors: { preflightContinue: true }, vite:config fs: { strict: true, allow: [Array], deny: [Array] }, vite:config sourcemapIgnoreList: [Function: sourcemapIgnoreList], vite:config watch: { ignored: [Array] }, vite:config middlewareMode: false vite:config }, vite:config preview: { vite:config port: undefined, vite:config strictPort: undefined, vite:config host: undefined, vite:config https: undefined, vite:config open: undefined, vite:config proxy: undefined, vite:config cors: { preflightContinue: true }, vite:config headers: undefined vite:config }, vite:config define: { vite:config __SVELTEKIT_ADAPTER_NAME__: '"@sveltejs/adapter-node"', vite:config __SVELTEKIT_APP_VERSION_FILE__: '"_app/version.json"', vite:config __SVELTEKIT_APP_VERSION_POLL_INTERVAL__: '0', vite:config __SVELTEKIT_DEV__: 'false', vite:config __SVELTEKIT_EMBEDDED__: 'false' vite:config }, vite:config base: './', vite:config publicDir: '/home/projects/sveltejs-kit-template-default-zc9wbg/static', vite:config worker: { vite:config format: 'iife', vite:config plugins: [ vite:config 'vite:build-metadata', vite:config 'vite:watch-package-data', vite:config 'vite:pre-alias', vite:config 'alias', vite:config 'vite:modulepreload-polyfill', vite:config 'vite:resolve', vite:config 'vite:html-inline-proxy', vite:config 'vite:css', vite:config 'vite:esbuild', vite:config 'vite:json', vite:config 'vite:wasm-helper', vite:config 'vite:worker', vite:config 'vite:asset', vite:config 'vite:wasm-fallback', vite:config 'vite:define', vite:config 'vite:css-post', vite:config 'vite:build-html', vite:config 'vite:worker-import-meta-url', vite:config 'vite:asset-import-meta-url', vite:config 'vite:force-systemjs-wrap-complete', vite:config 'commonjs', vite:config 'vite:data-uri', vite:config 'vite:worker-post', vite:config 'vite:dynamic-import-vars', vite:config 'vite:import-glob', vite:config 'vite:build-import-analysis', vite:config 'vite:esbuild-transpile', vite:config 'vite:terser', vite:config 'vite:load-fallback' vite:config ], vite:config rollupOptions: { output: [Object] }, vite:config getSortedPlugins: [Function: getSortedPlugins], vite:config getSortedPluginHooks: [Function: getSortedPluginHooks] vite:config }, vite:config configFileDependencies: [ vite:config '/home/projects/sveltejs-kit-template-default-zc9wbg/vite.config.js' vite:config ], vite:config inlineConfig: { vite:config configFile: '/home/projects/sveltejs-kit-template-default-zc9wbg/vite.config.js', vite:config mode: 'production', vite:config logLevel: undefined, vite:config clearScreen: undefined, vite:config build: { minify: undefined, assetsInlineLimit: 4096, sourcemap: false }, vite:config optimizeDeps: { force: undefined } vite:config }, vite:config rawBase: './', vite:config cacheDir: '/home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/.vite', vite:config command: 'build', vite:config isWorker: false, vite:config mainConfig: null, vite:config isProduction: true, vite:config css: undefined, vite:config envDir: '/home/projects/sveltejs-kit-template-default-zc9wbg', vite:config env: { BASE_URL: './', MODE: 'production', DEV: false, PROD: true }, vite:config assetsInclude: [Function: assetsInclude], vite:config logger: { vite:config hasWarned: true, vite:config info: [Function: info], vite:config warn: [Function: warn], vite:config warnOnce: [Function: warnOnce], vite:config error: [Function: error], vite:config clearScreen: [Function: clearScreen], vite:config hasErrorLogged: [Function: hasErrorLogged] vite:config }, vite:config packageCache: Map(1) { vite:config 'fnpd_/home/projects/sveltejs-kit-template-default-zc9wbg' => { vite:config dir: '/home/projects/sveltejs-kit-template-default-zc9wbg', vite:config data: [Object], vite:config hasSideEffects: [Function: hasSideEffects], vite:config webResolvedImports: {}, vite:config nodeResolvedImports: {}, vite:config setResolvedCache: [Function: setResolvedCache], vite:config getResolvedCache: [Function: getResolvedCache] vite:config }, vite:config set: [Function (anonymous)] vite:config }, vite:config createResolver: [Function: createResolver], vite:config appType: 'spa', vite:config getSortedPlugins: [Function: getSortedPlugins], vite:config getSortedPluginHooks: [Function: getSortedPluginHooks] vite:config } +10ms vite v4.5.0 building for production... transforming (1) node_modules/@sveltejs/kit/src/runtime/client/start.js vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/about/+page.svelte +45ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+layout.svelte +76ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@sveltejs/kit/src/runtime/components/error.svelte +1ms 18:57:23 [vite-plugin-svelte] /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+page.svelte:17:4 A11y: element should have an alt attribute 15: 16: 17: ^ 18: 19: vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+page.svelte +0ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/.svelte-kit/generated/root.svelte +0ms vite:vite-plugin-svelte resolveId resolved virtual css module /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+layout.svelte?svelte&type=style&lang.css +103ms vite:vite-plugin-svelte resolveId resolved virtual css module /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+page.svelte?svelte&type=style&lang.css +0ms vite:vite-plugin-svelte load returns css for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+layout.svelte +2ms vite:vite-plugin-svelte load returns css for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/+page.svelte +0ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Header.svelte +49ms vite:vite-plugin-svelte transform returns compiled js for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Counter.svelte +0ms transforming (18) node_modules/svelte/src/runtime/index.js vite:vite-plugin-svelte resolveId resolved virtual css module /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Header.svelte?svelte&type=style&lang.css +39ms vite:vite-plugin-svelte resolveId resolved virtual css module /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Counter.svelte?svelte&type=style&lang.css +0ms vite:vite-plugin-svelte load returns css for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Header.svelte +3ms vite:vite-plugin-svelte load returns css for /home/projects/sveltejs-kit-template-default-zc9wbg/src/routes/Counter.svelte +0ms transforming (59) node_modules/svelte/src/runtime/motion/index.js vite:resolve 1.00ms @fontsource/fira-mono -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/index.css +0ms vite:resolve 1.00ms ./files/fira-mono-cyrillic-ext-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-cyrillic-ext-400-normal.woff2 +0ms vite:resolve 1.00ms ./files/fira-mono-cyrillic-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-cyrillic-400-normal.woff2 +0ms vite:resolve 1.00ms ./files/fira-mono-greek-ext-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-greek-ext-400-normal.woff2 +0ms vite:resolve 0.00ms ./files/fira-mono-greek-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-greek-400-normal.woff2 +0ms vite:resolve 0.00ms ./files/fira-mono-latin-ext-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-latin-ext-400-normal.woff2 +0ms vite:resolve 0.00ms ./files/fira-mono-latin-400-normal.woff2 -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-latin-400-normal.woff2 +0ms vite:resolve 1.00ms ./files/fira-mono-all-400-normal.woff -> /home/projects/sveltejs-kit-template-default-zc9wbg/node_modules/@fontsource/fira-mono/files/fira-mono-all-400-normal.woff +2ms ✓ 81 modules transformed. vite:vite-plugin-svelte:stats dom compile done. vite:vite-plugin-svelte:stats package files time avg vite:vite-plugin-svelte:stats kit-template-default 7 0.13s 18.9ms +0ms .svelte-kit/output/client/_app/version.json 0.03 kB │ gzip: 0.05 kB .svelte-kit/output/client/_app/immutable/assets/github.1ea8d62e.svg 1.75 kB │ gzip: 0.82 kB .svelte-kit/output/client/_app/immutable/assets/svelte-logo.87df40b8.svg 1.89 kB │ gzip: 0.86 kB .svelte-kit/output/client/.vite/manifest.json 6.37 kB │ gzip: 0.88 kB .svelte-kit/output/client/_app/immutable/assets/fira-mono-greek-ext-400-normal.9e2fe623.woff2 7.51 kB .svelte-kit/output/client/_app/immutable/assets/fira-mono-cyrillic-400-normal.c7d433fd.woff2 9.10 kB .svelte-kit/output/client/_app/immutable/assets/fira-mono-greek-400-normal.a8be01ce.woff2 10.52 kB .svelte-kit/output/client/_app/immutable/assets/fira-mono-latin-ext-400-normal.6bfabd30.woff2 11.36 kB .svelte-kit/output/client/_app/immutable/assets/fira-mono-cyrillic-ext-400-normal.3df7909e.woff2 15.77 kB .svelte-kit/output/client/_app/immutable/assets/fira-mono-latin-400-normal.e43b3538.woff2 16.28 kB .svelte-kit/output/client/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff 77.36 kB .svelte-kit/output/client/_app/immutable/assets/svelte-welcome.c18bcf5a.webp 115.47 kB .svelte-kit/output/client/_app/immutable/assets/svelte-welcome.6c300099.png 360.81 kB .svelte-kit/output/client/_app/immutable/assets/2.57239003.css 1.47 kB │ gzip: 0.54 kB .svelte-kit/output/client/_app/immutable/assets/0.fa9427ff.css 5.18 kB │ gzip: 1.66 kB .svelte-kit/output/client/_app/immutable/chunks/stores.d7840de4.js 0.24 kB │ gzip: 0.17 kB .svelte-kit/output/client/_app/immutable/chunks/index.5e7feea3.js 0.45 kB │ gzip: 0.31 kB .svelte-kit/output/client/_app/immutable/nodes/1.f653b8a7.js 0.84 kB │ gzip: 0.52 kB .svelte-kit/output/client/_app/immutable/nodes/3.1e80664c.js 1.38 kB │ gzip: 0.87 kB .svelte-kit/output/client/_app/immutable/chunks/scheduler.b0c1c2c3.js 2.16 kB │ gzip: 1.02 kB .svelte-kit/output/client/_app/immutable/chunks/singletons.7d35de33.js 2.46 kB │ gzip: 1.26 kB .svelte-kit/output/client/_app/immutable/nodes/0.f1117d98.js 4.28 kB │ gzip: 1.72 kB .svelte-kit/output/client/_app/immutable/nodes/2.1a7d7b07.js 5.29 kB │ gzip: 2.50 kB .svelte-kit/output/client/_app/immutable/chunks/index.994eb031.js 5.90 kB │ gzip: 2.50 kB .svelte-kit/output/client/_app/immutable/entry/app.33c0eefa.js 6.23 kB │ gzip: 2.38 kB .svelte-kit/output/client/_app/immutable/entry/start.70e68ec0.js 24.89 kB │ gzip: 9.80 kB ✓ built in 838ms .svelte-kit/output/server/_app/immutable/assets/github.1ea8d62e.svg 1.75 kB .svelte-kit/output/server/_app/immutable/assets/svelte-logo.87df40b8.svg 1.89 kB .svelte-kit/output/server/.vite/manifest.json 5.66 kB .svelte-kit/output/server/_app/immutable/assets/fira-mono-greek-ext-400-normal.9e2fe623.woff2 7.51 kB .svelte-kit/output/server/_app/immutable/assets/fira-mono-cyrillic-400-normal.c7d433fd.woff2 9.10 kB .svelte-kit/output/server/_app/immutable/assets/fira-mono-greek-400-normal.a8be01ce.woff2 10.52 kB .svelte-kit/output/server/_app/immutable/assets/fira-mono-latin-ext-400-normal.6bfabd30.woff2 11.36 kB .svelte-kit/output/server/_app/immutable/assets/fira-mono-cyrillic-ext-400-normal.3df7909e.woff2 15.77 kB .svelte-kit/output/server/_app/immutable/assets/fira-mono-latin-400-normal.e43b3538.woff2 16.28 kB .svelte-kit/output/server/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff 77.36 kB .svelte-kit/output/server/_app/immutable/assets/svelte-welcome.c18bcf5a.webp 115.47 kB .svelte-kit/output/server/_app/immutable/assets/svelte-welcome.6c300099.png 360.81 kB .svelte-kit/output/server/_app/immutable/assets/_page.265a38f0.css 1.45 kB .svelte-kit/output/server/_app/immutable/assets/_layout.2f593b13.css 5.43 kB .svelte-kit/output/server/chunks/prod-ssr.js 0.04 kB .svelte-kit/output/server/entries/pages/_page.js 0.05 kB .svelte-kit/output/server/entries/pages/about/_page.js 0.15 kB .svelte-kit/output/server/internal.js 0.19 kB .svelte-kit/output/server/entries/fallbacks/error.svelte.js 0.47 kB .svelte-kit/output/server/entries/endpoints/image/_server.ts.js 0.52 kB .svelte-kit/output/server/chunks/stores.js 0.52 kB .svelte-kit/output/server/entries/pages/about/_page.svelte.js 0.92 kB .svelte-kit/output/server/chunks/index.js 1.33 kB .svelte-kit/output/server/chunks/ssr.js 3.59 kB .svelte-kit/output/server/entries/pages/_layout.svelte.js 4.36 kB .svelte-kit/output/server/chunks/internal.js 5.48 kB .svelte-kit/output/server/entries/pages/_page.svelte.js 7.82 kB .svelte-kit/output/server/index.js 88.88 kB Run npm run preview to preview your production build locally. > Using @sveltejs/adapter-node ✔ done ✓ built in 5.35s ```

Validations

stackblitz[bot] commented 11 months ago

Fix this issue in StackBlitz Codeflow Start a new pull request in StackBlitz Codeflow.