-
-
Notifications
You must be signed in to change notification settings - Fork 7.4k
Description
Describe the bug
Prior to vite 7.1.11, importing CJS libraries produced top level built-in imports
import require$$6 from "path";but since version 7.1.11, the build output contains code like this
const require$6 = createRequire(import.meta.url);
function __require$5() {
return require$6("node:path");
}this in itself is not a problem in node as import.meta.url is defined in node runtime, but in runtimes like workerd, import.meta.url is undefined, which causes createRequire to throw an error
from my investigation this is likely caused by rollup cjs plugin's update (rollup/plugins#1909), which was included in this vite version
this behaviour is causing our deployments on cloudflare to fail, we have rolled back to 7.1.10 until this issue is fixed
cc @jamesopstad, you probably want to know about this as workerd is the main affected runtime
Reproduction
https://github.com/BlankParticle/vite-cjs-import-issue
Steps to reproduce
the project is setup to bundle @slack/web-api, which is the CJS lib I was using
when you build the project, you can see createRequire(import.meta.url) in the output, which is causing the issue
downgrade to 7.1.10 and it produces the correct imports
System Info
System:
OS: macOS 26.0.1
CPU: (16) arm64 Apple M4 Max
Memory: 2.69 GB / 48.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 24.3.0 - /Users/blank/.local/state/fnm_multishells/76646_1761137138634/bin/node
Yarn: 1.22.22 - /Users/blank/.local/state/fnm_multishells/76646_1761137138634/bin/yarn
npm: 11.4.2 - /Users/blank/.local/state/fnm_multishells/76646_1761137138634/bin/npm
pnpm: 10.18.2 - /Users/blank/.local/state/fnm_multishells/76646_1761137138634/bin/pnpm
bun: 1.3.0 - /Users/blank/.bun/bin/bun
Browsers:
Chrome: 141.0.7390.108
Safari: 26.0.1
npmPackages:
vite: 7.1.11 => 7.1.11Used Package Manager
pnpm
Logs
Click to expand!
vite:config config file loaded in 8.54ms +0ms
vite:env loading env files: [
vite:env '/Users/blank/Projects/vite-project/.env',
vite:env '/Users/blank/Projects/vite-project/.env.local',
vite:env '/Users/blank/Projects/vite-project/.env.production',
vite:env '/Users/blank/Projects/vite-project/.env.production.local'
vite:env ] +0ms
vite:env env files loaded in 0.15ms +0ms
vite:env using resolved env: {} +1ms
vite:config using resolved config: {
vite:config build: {
vite:config target: [ 'chrome107', 'edge107', 'firefox104', 'safari16' ],
vite:config polyfillModulePreload: true,
vite:config modulePreload: { polyfill: true },
vite:config outDir: 'dist',
vite:config assetsDir: 'assets',
vite:config assetsInlineLimit: 4096,
vite:config sourcemap: false,
vite:config terserOptions: {},
vite:config rollupOptions: {},
vite:config commonjsOptions: { include: [ /node_modules/ ], extensions: [ '.js', '.cjs' ] },
vite:config dynamicImportVarsOptions: { warnOnError: true, exclude: [ /node_modules/ ] },
vite:config write: true,
vite:config emptyOutDir: null,
vite:config copyPublicDir: true,
vite:config manifest: false,
vite:config lib: { entry: './src/index.ts', formats: [ 'es' ] },
vite:config ssrManifest: false,
vite:config ssrEmitAssets: false,
vite:config reportCompressedSize: true,
vite:config chunkSizeWarningLimit: 500,
vite:config watch: null,
vite:config cssCodeSplit: false,
vite:config minify: false,
vite:config ssr: true,
vite:config emitAssets: false,
vite:config createEnvironment: [Function: createEnvironment],
vite:config cssTarget: [ 'chrome107', 'edge107', 'firefox104', 'safari16' ],
vite:config cssMinify: 'esbuild'
vite:config },
vite:config resolve: {
vite:config externalConditions: [ 'node', 'module-sync' ],
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 noExternal: [ '@slack/web-api' ],
vite:config external: [],
vite:config preserveSymlinks: false,
vite:config alias: [
vite:config {
vite:config find: /^\/?@vite\/env/,
vite:config replacement: '/@fs/Users/blank/Projects/vite-project/node_modules/.pnpm/vite@7.1.11_@types+node@22.18.12_jiti@2.6.1_lightningcss@1.30.2/node_modules/vite/dist/client/env.mjs'
vite:config },
vite:config {
vite:config find: /^\/?@vite\/client/,
vite:config replacement: '/@fs/Users/blank/Projects/vite-project/node_modules/.pnpm/vite@7.1.11_@types+node@22.18.12_jiti@2.6.1_lightningcss@1.30.2/node_modules/vite/dist/client/client.mjs'
vite:config }
vite:config ],
vite:config mainFields: [ 'browser', 'module', 'jsnext:main', 'jsnext' ],
vite:config conditions: [ 'module', 'browser', 'development|production' ],
vite:config builtins: []
vite:config },
vite:config environments: {
vite:config client: {
vite:config define: undefined,
vite:config resolve: {
vite:config externalConditions: [ 'node', 'module-sync' ],
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 noExternal: [ '@slack/web-api' ],
vite:config external: [],
vite:config preserveSymlinks: false,
vite:config alias: [
vite:config {
vite:config find: /^\/?@vite\/env/,
vite:config replacement: '/@fs/Users/blank/Projects/vite-project/node_modules/.pnpm/vite@7.1.11_@types+node@22.18.12_jiti@2.6.1_lightningcss@1.30.2/node_modules/vite/dist/client/env.mjs'
vite:config },
vite:config {
vite:config find: /^\/?@vite\/client/,
vite:config replacement: '/@fs/Users/blank/Projects/vite-project/node_modules/.pnpm/vite@7.1.11_@types+node@22.18.12_jiti@2.6.1_lightningcss@1.30.2/node_modules/vite/dist/client/client.mjs'
vite:config }
vite:config ],
vite:config mainFields: [ 'browser', 'module', 'jsnext:main', 'jsnext' ],
vite:config conditions: [ 'module', 'browser', 'development|production' ],
vite:config builtins: []
vite:config },
vite:config keepProcessEnv: false,
vite:config consumer: 'client',
vite:config optimizeDeps: {
vite:config include: [],
vite:config exclude: [],
vite:config needsInterop: [],
vite:config extensions: [],
vite:config disabled: undefined,
vite:config holdUntilCrawlEnd: true,
vite:config force: false,
vite:config noDiscovery: false,
vite:config esbuildOptions: { preserveSymlinks: false }
vite:config },
vite:config dev: {
vite:config warmup: [],
vite:config sourcemap: { js: true },
vite:config sourcemapIgnoreList: [Function: isInNodeModules],
vite:config preTransformRequests: true,
vite:config createEnvironment: [Function: defaultCreateClientDevEnvironment],
vite:config recoverable: true,
vite:config moduleRunnerTransform: false
vite:config },
vite:config build: {
vite:config target: [ 'chrome107', 'edge107', 'firefox104', 'safari16' ],
vite:config polyfillModulePreload: true,
vite:config modulePreload: { polyfill: true },
vite:config outDir: 'dist',
vite:config assetsDir: 'assets',
vite:config assetsInlineLimit: 4096,
vite:config sourcemap: false,
vite:config terserOptions: {},
vite:config rollupOptions: {},
vite:config commonjsOptions: { include: [ /node_modules/ ], extensions: [ '.js', '.cjs' ] },
vite:config dynamicImportVarsOptions: { warnOnError: true, exclude: [ /node_modules/ ] },
vite:config write: true,
vite:config emptyOutDir: null,
vite:config copyPublicDir: true,
vite:config manifest: false,
vite:config lib: { entry: './src/index.ts', formats: [ 'es' ] },
vite:config ssrManifest: false,
vite:config ssrEmitAssets: false,
vite:config reportCompressedSize: true,
vite:config chunkSizeWarningLimit: 500,
vite:config watch: null,
vite:config cssCodeSplit: false,
vite:config minify: false,
vite:config ssr: true,
vite:config emitAssets: true,
vite:config createEnvironment: [Function: createEnvironment],
vite:config cssTarget: [ 'chrome107', 'edge107', 'firefox104', 'safari16' ],
vite:config cssMinify: false
vite:config },
vite:config plugins: [
vite:config {
vite:config name: 'vite:build-metadata',
vite:config renderChunk: [AsyncFunction: renderChunk]
vite:config },
vite:config {
vite:config name: 'vite:watch-package-data',
vite:config buildStart: [Function: buildStart],
vite:config buildEnd: [Function: buildEnd],
vite:config watchChange: [Function: watchChange]
vite:config },
vite:config {
vite:config name: 'alias',
vite:config buildStart: [AsyncFunction: buildStart],
vite:config resolveId: [Function: resolveId]
vite:config },
vite:config {
vite:config name: 'vite:modulepreload-polyfill',
vite:config resolveId: {
vite:config filter: { id: /^vite\/modulepreload\-polyfill$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: { id: /^vite\/modulepreload\-polyfill\.js$/ },
vite:config handler: [Function: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:resolve',
vite:config resolveId: {
vite:config filter: { id: { exclude: /^(?:\0|\/?virtual:)/ } },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config load: {
vite:config filter: {
vite:config id: [
vite:config /^__vite\-browser\-external/,
vite:config /^__vite\-optional\-peer\-dep/
vite:config ]
vite:config },
vite:config handler: [Function: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:html-inline-proxy',
vite:config resolveId: {
vite:config filter: { id: /[?&]html-proxy\b/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: { id: /[?&]html-proxy\b/ },
vite:config handler: [Function: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:css',
vite:config buildStart: [Function: buildStart],
vite:config buildEnd: [Function: buildEnd],
vite:config load: {
vite:config filter: {
vite:config id: /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config transform: {
vite:config filter: {
vite:config id: {
vite:config include: /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/,
vite:config exclude: [
vite:config /[?&]commonjs-proxy/,
vite:config /[?&](?:worker|sharedworker|raw|url)\b/
vite:config ]
vite:config }
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:esbuild',
vite:config configureServer: [Function: configureServer],
vite:config transform: [AsyncFunction: transform]
vite:config },
vite:config {
vite:config name: 'vite:json',
vite:config transform: {
vite:config filter: {
vite:config id: {
vite:config include: /\.json(?:$|\?)(?!commonjs-(?:proxy|external))/,
vite:config exclude: /[?&](?:worker|sharedworker|raw|url)\b/
vite:config }
vite:config },
vite:config handler: [Function: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:wasm-helper',
vite:config resolveId: {
vite:config filter: { id: /^vite\/wasm\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: {
vite:config id: [
vite:config /^vite\/wasm\-helper\.js$/,
vite:config /(?<![?#].*)\.wasm\?init/
vite:config ]
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:worker',
vite:config buildStart: [Function: buildStart],
vite:config load: {
vite:config filter: { id: /(?:\?|&)(worker|sharedworker)(?:&|$)/ },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config shouldTransformCachedModule: [Function: shouldTransformCachedModule],
vite:config transform: {
vite:config filter: { id: /(?:\?|&)worker_file&type=(\w+)(?:&|$)/ },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config renderChunk: [Function: renderChunk],
vite:config generateBundle: [Function: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:asset',
vite:config perEnvironmentStartEndDuringDev: true,
vite:config buildStart: [Function: buildStart],
vite:config resolveId: { handler: [Function: handler] },
vite:config load: {
vite:config filter: { id: { exclude: /^\0/ } },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config renderChunk: [Function: renderChunk],
vite:config generateBundle: [Function: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:wasm-fallback',
vite:config load: { filter: { id: /\.wasm$/ }, handler: [Function: handler] }
vite:config },
vite:config {
vite:config name: 'vite:define',
vite:config transform: { handler: [AsyncFunction: handler] }
vite:config },
vite:config {
vite:config name: 'vite:css-post',
vite:config renderStart: [Function: renderStart],
vite:config transform: {
vite:config filter: {
vite:config id: {
vite:config include: /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/,
vite:config exclude: [
vite:config /[?&]commonjs-proxy/,
vite:config /[?&](?:worker|sharedworker|raw|url)\b/
vite:config ]
vite:config }
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config renderChunk: [AsyncFunction: renderChunk],
vite:config augmentChunkHash: [Function: augmentChunkHash],
vite:config generateBundle: [AsyncFunction: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:build-html',
vite:config transform: {
vite:config filter: { id: /\.html$/ },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config generateBundle: [AsyncFunction: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:worker-import-meta-url',
vite:config applyToEnvironment: [Function: applyToEnvironment],
vite:config shouldTransformCachedModule: [Function: shouldTransformCachedModule],
vite:config transform: {
vite:config filter: {
vite:config code: /new\s+(?:Worker|SharedWorker)\s*\(\s*new\s+URL.+?import\.meta\.url/s
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:asset-import-meta-url',
vite:config applyToEnvironment: [Function: applyToEnvironment],
vite:config transform: {
vite:config filter: {
vite:config id: {
vite:config exclude: [
vite:config /^vite\/preload\-helper\.js$/,
vite:config /^\/Users\/blank\/Projects\/vite\-project\/node_modules\/\.pnpm\/vite@7\.1\.11_@types\+node@22\.18\.12_jiti@2\.6\.1_lightningcss@1\.30\.2\/node_modules\/vite\/dist\/client\/client\.mjs$/
vite:config ]
vite:config },
vite:config code: /new\s+URL.+import\.meta\.url/s
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:force-systemjs-wrap-complete',
vite:config renderChunk: [Function: renderChunk]
vite:config },
vite:config {
vite:config name: 'vite:prepare-out-dir',
vite:config options: [Function: options],
vite:config renderStart: { order: 'pre', handler: [Function: handler] }
vite:config },
vite:config {
vite:config name: 'commonjs',
vite:config version: '28.0.8',
vite:config options: [Function: options],
vite:config buildStart: [Function: buildStart],
vite:config buildEnd: [Function: buildEnd],
vite:config load: [AsyncFunction: load],
vite:config shouldTransformCachedModule: [Function: shouldTransformCachedModule],
vite:config transform: [Function: transform]
vite:config },
vite:config {
vite:config name: 'vite:data-uri',
vite:config buildStart: [Function: buildStart],
vite:config resolveId: [Function: resolveId],
vite:config load: [Function: load]
vite:config },
vite:config {
vite:config name: 'vite:dynamic-import-vars',
vite:config resolveId: {
vite:config filter: { id: /^vite\/dynamic\-import\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: { id: /^vite\/dynamic\-import\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config transform: {
vite:config filter: {
vite:config id: {
vite:config exclude: /^\/Users\/blank\/Projects\/vite\-project\/node_modules\/\.pnpm\/vite@7\.1\.11_@types\+node@22\.18\.12_jiti@2\.6\.1_lightningcss@1\.30\.2\/node_modules\/vite\/dist\/client\/client\.mjs$/
vite:config },
vite:config code: /\bimport\s*[(/]/
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:import-glob',
vite:config buildStart: [Function: buildStart],
vite:config transform: {
vite:config filter: { code: 'import.meta.glob' },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config hotUpdate: [Function: hotUpdate]
vite:config },
vite:config {
vite:config name: 'vite:build-import-analysis',
vite:config resolveId: {
vite:config filter: { id: /^vite\/preload\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: { id: /^vite\/preload\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config transform: {
vite:config filter: { code: /import\s*\(/ },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config renderChunk: [Function: renderChunk],
vite:config generateBundle: [Function: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:esbuild-transpile',
vite:config applyToEnvironment: [Function: applyToEnvironment],
vite:config renderChunk: [AsyncFunction: renderChunk]
vite:config },
vite:config {
vite:config name: 'vite:reporter',
vite:config sharedDuringBuild: true,
vite:config perEnvironmentStartEndDuringDev: true,
vite:config transform: [Function: transform],
vite:config buildStart: [Function: buildStart],
vite:config buildEnd: [Function: buildEnd],
vite:config renderStart: [Function: renderStart],
vite:config renderChunk: [Function: renderChunk],
vite:config generateBundle: [Function: generateBundle],
vite:config writeBundle: [AsyncFunction: writeBundle]
vite:config },
vite:config {
vite:config name: 'vite:load-fallback',
vite:config load: { handler: [AsyncFunction: handler] }
vite:config }
vite:config ]
vite:config },
vite:config ssr: {
vite:config define: undefined,
vite:config resolve: {
vite:config externalConditions: [ 'node', 'module-sync' ],
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 noExternal: [ '@slack/web-api' ],
vite:config external: [],
vite:config preserveSymlinks: false,
vite:config alias: [
vite:config {
vite:config find: /^\/?@vite\/env/,
vite:config replacement: '/@fs/Users/blank/Projects/vite-project/node_modules/.pnpm/vite@7.1.11_@types+node@22.18.12_jiti@2.6.1_lightningcss@1.30.2/node_modules/vite/dist/client/env.mjs'
vite:config },
vite:config {
vite:config find: /^\/?@vite\/client/,
vite:config replacement: '/@fs/Users/blank/Projects/vite-project/node_modules/.pnpm/vite@7.1.11_@types+node@22.18.12_jiti@2.6.1_lightningcss@1.30.2/node_modules/vite/dist/client/client.mjs'
vite:config }
vite:config ],
vite:config mainFields: [ 'module', 'jsnext:main', 'jsnext' ],
vite:config conditions: [ 'module', 'node', 'development|production' ],
vite:config builtins: [
vite:config '_http_agent', '_http_client', '_http_common',
vite:config '_http_incoming', '_http_outgoing', '_http_server',
vite:config '_stream_duplex', '_stream_passthrough', '_stream_readable',
vite:config '_stream_transform', '_stream_wrap', '_stream_writable',
vite:config '_tls_common', '_tls_wrap', 'assert',
vite:config 'assert/strict', 'async_hooks', 'buffer',
vite:config 'child_process', 'cluster', 'console',
vite:config 'constants', 'crypto', 'dgram',
vite:config 'diagnostics_channel', 'dns', 'dns/promises',
vite:config 'domain', 'events', 'fs',
vite:config 'fs/promises', 'http', 'http2',
vite:config 'https', 'inspector', 'inspector/promises',
vite:config 'module', 'net', 'os',
vite:config 'path', 'path/posix', 'path/win32',
vite:config 'perf_hooks', 'process', 'punycode',
vite:config 'querystring', 'readline', 'readline/promises',
vite:config 'repl', 'stream', 'stream/consumers',
vite:config 'stream/promises', 'stream/web', 'string_decoder',
vite:config 'sys', 'timers', 'timers/promises',
vite:config 'tls', 'trace_events', 'tty',
vite:config 'url', 'util', 'util/types',
vite:config 'v8', 'vm', 'wasi',
vite:config 'worker_threads', 'zlib', /^node:/,
vite:config /^bun:/
vite:config ]
vite:config },
vite:config keepProcessEnv: true,
vite:config consumer: 'server',
vite:config optimizeDeps: {
vite:config include: [],
vite:config exclude: [],
vite:config needsInterop: [],
vite:config extensions: [],
vite:config disabled: undefined,
vite:config holdUntilCrawlEnd: true,
vite:config force: false,
vite:config noDiscovery: true,
vite:config esbuildOptions: { preserveSymlinks: false }
vite:config },
vite:config dev: {
vite:config warmup: [],
vite:config sourcemap: { js: true },
vite:config sourcemapIgnoreList: [Function: isInNodeModules],
vite:config preTransformRequests: false,
vite:config createEnvironment: [Function: defaultCreateDevEnvironment],
vite:config recoverable: false,
vite:config moduleRunnerTransform: true
vite:config },
vite:config build: {
vite:config target: [ 'chrome107', 'edge107', 'firefox104', 'safari16' ],
vite:config polyfillModulePreload: true,
vite:config modulePreload: { polyfill: true },
vite:config outDir: 'dist',
vite:config assetsDir: 'assets',
vite:config assetsInlineLimit: 4096,
vite:config sourcemap: false,
vite:config terserOptions: {},
vite:config rollupOptions: {},
vite:config commonjsOptions: { include: [ /node_modules/ ], extensions: [ '.js', '.cjs' ] },
vite:config dynamicImportVarsOptions: { warnOnError: true, exclude: [ /node_modules/ ] },
vite:config write: true,
vite:config emptyOutDir: null,
vite:config copyPublicDir: true,
vite:config manifest: false,
vite:config lib: { entry: './src/index.ts', formats: [ 'es' ] },
vite:config ssrManifest: false,
vite:config ssrEmitAssets: false,
vite:config reportCompressedSize: true,
vite:config chunkSizeWarningLimit: 500,
vite:config watch: null,
vite:config cssCodeSplit: false,
vite:config minify: false,
vite:config ssr: true,
vite:config emitAssets: false,
vite:config createEnvironment: [Function: createEnvironment],
vite:config cssTarget: [ 'chrome107', 'edge107', 'firefox104', 'safari16' ],
vite:config cssMinify: 'esbuild'
vite:config },
vite:config plugins: [
vite:config {
vite:config name: 'vite:build-metadata',
vite:config renderChunk: [AsyncFunction: renderChunk]
vite:config },
vite:config {
vite:config name: 'vite:watch-package-data',
vite:config buildStart: [Function: buildStart],
vite:config buildEnd: [Function: buildEnd],
vite:config watchChange: [Function: watchChange]
vite:config },
vite:config {
vite:config name: 'alias',
vite:config buildStart: [AsyncFunction: buildStart],
vite:config resolveId: [Function: resolveId]
vite:config },
vite:config {
vite:config name: 'vite:modulepreload-polyfill',
vite:config resolveId: {
vite:config filter: { id: /^vite\/modulepreload\-polyfill$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: { id: /^vite\/modulepreload\-polyfill\.js$/ },
vite:config handler: [Function: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:resolve',
vite:config resolveId: {
vite:config filter: { id: { exclude: /^(?:\0|\/?virtual:)/ } },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config load: {
vite:config filter: {
vite:config id: [
vite:config /^__vite\-browser\-external/,
vite:config /^__vite\-optional\-peer\-dep/
vite:config ]
vite:config },
vite:config handler: [Function: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:html-inline-proxy',
vite:config resolveId: {
vite:config filter: { id: /[?&]html-proxy\b/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: { id: /[?&]html-proxy\b/ },
vite:config handler: [Function: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:css',
vite:config buildStart: [Function: buildStart],
vite:config buildEnd: [Function: buildEnd],
vite:config load: {
vite:config filter: {
vite:config id: /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config transform: {
vite:config filter: {
vite:config id: {
vite:config include: /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/,
vite:config exclude: [
vite:config /[?&]commonjs-proxy/,
vite:config /[?&](?:worker|sharedworker|raw|url)\b/
vite:config ]
vite:config }
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:esbuild',
vite:config configureServer: [Function: configureServer],
vite:config transform: [AsyncFunction: transform]
vite:config },
vite:config {
vite:config name: 'vite:json',
vite:config transform: {
vite:config filter: {
vite:config id: {
vite:config include: /\.json(?:$|\?)(?!commonjs-(?:proxy|external))/,
vite:config exclude: /[?&](?:worker|sharedworker|raw|url)\b/
vite:config }
vite:config },
vite:config handler: [Function: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:wasm-helper',
vite:config resolveId: {
vite:config filter: { id: /^vite\/wasm\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: {
vite:config id: [
vite:config /^vite\/wasm\-helper\.js$/,
vite:config /(?<![?#].*)\.wasm\?init/
vite:config ]
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:worker',
vite:config buildStart: [Function: buildStart],
vite:config load: {
vite:config filter: { id: /(?:\?|&)(worker|sharedworker)(?:&|$)/ },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config shouldTransformCachedModule: [Function: shouldTransformCachedModule],
vite:config transform: {
vite:config filter: { id: /(?:\?|&)worker_file&type=(\w+)(?:&|$)/ },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config renderChunk: [Function: renderChunk],
vite:config generateBundle: [Function: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:asset',
vite:config perEnvironmentStartEndDuringDev: true,
vite:config buildStart: [Function: buildStart],
vite:config resolveId: { handler: [Function: handler] },
vite:config load: {
vite:config filter: { id: { exclude: /^\0/ } },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config renderChunk: [Function: renderChunk],
vite:config generateBundle: [Function: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:wasm-fallback',
vite:config load: { filter: { id: /\.wasm$/ }, handler: [Function: handler] }
vite:config },
vite:config {
vite:config name: 'vite:define',
vite:config transform: { handler: [AsyncFunction: handler] }
vite:config },
vite:config {
vite:config name: 'vite:css-post',
vite:config renderStart: [Function: renderStart],
vite:config transform: {
vite:config filter: {
vite:config id: {
vite:config include: /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/,
vite:config exclude: [
vite:config /[?&]commonjs-proxy/,
vite:config /[?&](?:worker|sharedworker|raw|url)\b/
vite:config ]
vite:config }
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config renderChunk: [AsyncFunction: renderChunk],
vite:config augmentChunkHash: [Function: augmentChunkHash],
vite:config generateBundle: [AsyncFunction: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:build-html',
vite:config transform: {
vite:config filter: { id: /\.html$/ },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config generateBundle: [AsyncFunction: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:force-systemjs-wrap-complete',
vite:config renderChunk: [Function: renderChunk]
vite:config },
vite:config {
vite:config name: 'vite:prepare-out-dir',
vite:config options: [Function: options],
vite:config renderStart: { order: 'pre', handler: [Function: handler] }
vite:config },
vite:config {
vite:config name: 'commonjs',
vite:config version: '28.0.8',
vite:config options: [Function: options],
vite:config buildStart: [Function: buildStart],
vite:config buildEnd: [Function: buildEnd],
vite:config load: [AsyncFunction: load],
vite:config shouldTransformCachedModule: [Function: shouldTransformCachedModule],
vite:config transform: [Function: transform]
vite:config },
vite:config {
vite:config name: 'vite:data-uri',
vite:config buildStart: [Function: buildStart],
vite:config resolveId: [Function: resolveId],
vite:config load: [Function: load]
vite:config },
vite:config {
vite:config name: 'vite:dynamic-import-vars',
vite:config resolveId: {
vite:config filter: { id: /^vite\/dynamic\-import\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: { id: /^vite\/dynamic\-import\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config transform: {
vite:config filter: {
vite:config id: {
vite:config exclude: /^\/Users\/blank\/Projects\/vite\-project\/node_modules\/\.pnpm\/vite@7\.1\.11_@types\+node@22\.18\.12_jiti@2\.6\.1_lightningcss@1\.30\.2\/node_modules\/vite\/dist\/client\/client\.mjs$/
vite:config },
vite:config code: /\bimport\s*[(/]/
vite:config },
vite:config handler: [AsyncFunction: handler]
vite:config }
vite:config },
vite:config {
vite:config name: 'vite:import-glob',
vite:config buildStart: [Function: buildStart],
vite:config transform: {
vite:config filter: { code: 'import.meta.glob' },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config hotUpdate: [Function: hotUpdate]
vite:config },
vite:config {
vite:config name: 'vite:build-import-analysis',
vite:config resolveId: {
vite:config filter: { id: /^vite\/preload\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config load: {
vite:config filter: { id: /^vite\/preload\-helper\.js$/ },
vite:config handler: [Function: handler]
vite:config },
vite:config transform: {
vite:config filter: { code: /import\s*\(/ },
vite:config handler: [AsyncFunction: handler]
vite:config },
vite:config renderChunk: [Function: renderChunk],
vite:config generateBundle: [Function: generateBundle]
vite:config },
vite:config {
vite:config name: 'vite:esbuild-transpile',
vite:config applyToEnvironment: [Function: applyToEnvironment],
vite:config renderChunk: [AsyncFunction: renderChunk]
vite:config },
vite:config {
vite:config name: 'vite:reporter',
vite:config sharedDuringBuild: true,
vite:config perEnvironmentStartEndDuringDev: true,
vite:config transform: [Function: transform],
vite:config buildStart: [Function: buildStart],
vite:config buildEnd: [Function: buildEnd],
vite:config renderStart: [Function: renderStart],
vite:config renderChunk: [Function: renderChunk],
vite:config generateBundle: [Function: generateBundle],
vite:config writeBundle: [AsyncFunction: writeBundle]
vite:config },
vite:config {
vite:config name: 'vite:load-fallback',
vite:config load: { handler: [AsyncFunction: handler] }
vite:config }
vite:config ]
vite:config }
vite:config },
vite:config configFile: '/Users/blank/Projects/vite-project/vite.config.ts',
vite:config configFileDependencies: [ '/Users/blank/Projects/vite-project/vite.config.ts' ],
vite:config inlineConfig: {
vite:config root: undefined,
vite:config base: undefined,
vite:config mode: undefined,
vite:config configFile: undefined,
vite:config configLoader: undefined,
vite:config logLevel: undefined,
vite:config clearScreen: undefined,
vite:config build: {}
vite:config },
vite:config root: '/Users/blank/Projects/vite-project',
vite:config base: '/',
vite:config decodedBase: '/',
vite:config rawBase: '/',
vite:config publicDir: '/Users/blank/Projects/vite-project/public',
vite:config cacheDir: '/Users/blank/Projects/vite-project/node_modules/.vite',
vite:config command: 'build',
vite:config mode: 'production',
vite:config isWorker: false,
vite:config mainConfig: null,
vite:config bundleChain: [],
vite:config isProduction: true,
vite:config plugins: [
vite:config 'vite:build-metadata',
vite:config 'vite:watch-package-data',
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 'vite:prepare-out-dir',
vite:config 'commonjs',
vite:config 'vite:data-uri',
vite:config 'vite:rollup-options-plugins',
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:ssr-manifest',
vite:config 'vite:reporter',
vite:config 'vite:load-fallback'
vite:config ],
vite:config css: {
vite:config transformer: 'postcss',
vite:config preprocessorMaxWorkers: true,
vite:config devSourcemap: false
vite:config },
vite:config json: { namedExports: true, stringify: 'auto' },
vite:config esbuild: { jsxDev: false },
vite:config server: {
vite:config port: 5173,
vite:config strictPort: false,
vite:config host: undefined,
vite:config allowedHosts: [],
vite:config https: undefined,
vite:config open: false,
vite:config proxy: undefined,
vite:config cors: {
vite:config origin: /^https?:\/\/(?:(?:[^:]+\.)?localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/
vite:config },
vite:config headers: {},
vite:config warmup: { clientFiles: [], ssrFiles: [] },
vite:config middlewareMode: false,
vite:config fs: {
vite:config strict: true,
vite:config deny: [ '.env', '.env.*', '*.{crt,pem}', '**/.git/**' ],
vite:config allow: [ '/Users/blank/Projects/vite-project' ]
vite:config },
vite:config preTransformRequests: true,
vite:config perEnvironmentStartEndDuringDev: false,
vite:config sourcemapIgnoreList: [Function: isInNodeModules]
vite:config },
vite:config builder: undefined,
vite:config preview: {
vite:config port: 4173,
vite:config strictPort: false,
vite:config host: undefined,
vite:config allowedHosts: [],
vite:config https: undefined,
vite:config open: false,
vite:config proxy: undefined,
vite:config cors: {
vite:config origin: /^https?:\/\/(?:(?:[^:]+\.)?localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/
vite:config },
vite:config headers: {}
vite:config },
vite:config envDir: '/Users/blank/Projects/vite-project',
vite:config env: { BASE_URL: '/', MODE: 'production', DEV: false, PROD: true },
vite:config assetsInclude: [Function: assetsInclude],
vite:config logger: {
vite:config hasWarned: false,
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_/Users/blank/Projects/vite-project' => {
vite:config dir: '/Users/blank/Projects/vite-project',
vite:config data: {
vite:config name: 'vite-project',
vite:config private: true,
vite:config type: 'module',
vite:config scripts: { build: 'vite build' },
vite:config devDependencies: { '@slack/web-api': '^7.11.0', vite: '7.1.11' }
vite:config },
vite:config hasSideEffects: [Function: hasSideEffects],
vite:config setResolvedCache: [Function: setResolvedCache],
vite:config getResolvedCache: [Function: getResolvedCache]
vite:config },
vite:config set: [Function (anonymous)]
vite:config },
vite:config worker: { format: 'iife', plugins: '() => plugins', rollupOptions: {} },
vite:config appType: 'spa',
vite:config experimental: {
vite:config importGlobRestoreExtension: false,
vite:config renderBuiltUrl: undefined,
vite:config hmrPartialAccept: false
vite:config },
vite:config future: undefined,
vite:config ssr: {
vite:config target: 'node',
vite:config optimizeDeps: {
vite:config esbuildOptions: { preserveSymlinks: false },
vite:config include: [],
vite:config exclude: [],
vite:config needsInterop: [],
vite:config extensions: [],
vite:config holdUntilCrawlEnd: true,
vite:config force: false,
vite:config noDiscovery: true
vite:config },
vite:config external: [],
vite:config noExternal: [ '@slack/web-api' ],
vite:config resolve: {
vite:config conditions: [ 'module', 'node', 'development|production' ],
vite:config externalConditions: [ 'node', 'module-sync' ]
vite:config }
vite:config },
vite:config optimizeDeps: {
vite:config include: [],
vite:config exclude: [],
vite:config needsInterop: [],
vite:config extensions: [],
vite:config disabled: undefined,
vite:config holdUntilCrawlEnd: true,
vite:config force: false,
vite:config noDiscovery: false,
vite:config esbuildOptions: { preserveSymlinks: false }
vite:config },
vite:config dev: {
vite:config warmup: [],
vite:config sourcemap: { js: true },
vite:config sourcemapIgnoreList: [Function: isInNodeModules],
vite:config preTransformRequests: false,
vite:config createEnvironment: [Function: defaultCreateDevEnvironment],
vite:config recoverable: false,
vite:config moduleRunnerTransform: false
vite:config },
vite:config webSocketToken: '2yJaSXLcNIf1',
vite:config getSortedPlugins: [Function: getSortedPlugins],
vite:config getSortedPluginHooks: [Function: getSortedPluginHooks],
vite:config createResolver: [Function: createResolver],
vite:config fsDenyGlob: [Function: arrayMatcher],
vite:config safeModulePaths: Set(0) {},
vite:config Symbol(vite:resolved-config): true
vite:config } +11ms
vite v7.1.11 building SSR bundle for production...
✓ 206 modules transformed.
dist/index.js 562.57 kB
✓ built in 292msValidations
- Follow our Code of Conduct
- Read the Contributing Guidelines.
- Read the docs.
- Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
- Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
- Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
- The provided reproduction is a minimal reproducible example of the bug.