← All tasks
javascriptvitejs/vite #13355Not a task: not reproduced

Cannot preload workers

envgap__vitejs__vite-13355

01 / FAILURE SIGNATURE

As reported upstream

vite:config     dynamicImportVarsOptions: { warnOnError: true, exclude: [Array] },
Not a benchmark task.
  • In a clean container the reported failure did not reproduce, or the known fix did not make the project run.

02 / ENVIRONMENT RECIPE

Base commit
fc7c104e74d35a97fa313d5dd6f1b5e7d5b26159
Manifest
packages/vite/package.json
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

vitejs/vite #13355 · read the original issue
### Describe the bug

When I try to preload a worker like this

```html

<link rel="modulepreload" href="/worker.js" />

```

I expect

```html

<link rel="modulepreload" href="/assets/worker-552d510d.js" />

```

But actually

```html

<link rel="modulepreload" href="data:application/javascript;base64,Y29uc29sZS5sb2coJ2hlbGxvIGZyb20gd29ya2VyJyk7DQo=" />

```

### Reproduction

https://stackblitz.com/edit/vite-min-to-reproduce-module-preload-worker

### Steps to reproduce

`npm run build`



### System Info

```shell
System:

    OS: Windows 10 10.0.22621

    CPU: (12) x64 Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz

    Memory: 17.04 GB / 31.75 GB

  Binaries:

    Node: 18.12.1 - C:\Program Files\nodejs\node.EXE

    npm: 8.19.2 - C:\Program Files\nodejs\npm.CMD

  Browsers:

    Edge: Spartan (44.22621.1702.0), Chromium (113.0.1774.57), ChromiumDev (115.0.1866.1)

    Internet Explorer: 11.0.22621.1

  npmPackages:

    vite: ^4.3.8 => 4.3.8
```


### Used Package Manager

npm

### Logs

<details>

<summary>Click to expand!</summary>



```shell

$ vite build --debug

  vite:config no config file found. +0ms

  vite:config using resolved config: {

  vite:config   root: '/home/projects/vite-min-to-reproduce-module-preload-worker',

  vite:config   base: '/',

  vite:config   mode: 'production',

  vite:config   configFile: undefined,

  vite:config   logLevel: undefined,

  vite:config   clearScreen: undefined,

  vite:config   optimizeDeps: {

  vite:config     disabled: 'build',

  vite:config     force: undefined,

  vite:config     esbuildOptions: { preserveSymlinks: false }

  vite:config   },

  vite:config   build: {

  vite:config     target: [ 'es2020', 'edge88', 'firefox78', 'chrome87', 'safari14' ],

  vite:config     cssTarget: [ 'es2020', 'edge88', 'firefox78', 'chrome87', 'safari14' ],

  vite:config     outDir: 'dist',

  vite:config     assetsDir: 'assets',

  vite:config     assetsInlineLimit: 4096,

  vite:config     cssCodeSplit: true,

  vite:config     sourcemap: false,

  vite:config     rollupOptions: {},

  vite:config     minify: 'esbuild',

  vite:config     terserOptions: {},

  vite:config     write: true,

  vite:config     emptyOutDir: null,

  vite:config     copyPublicDir: true,

  vite:config     manifest: false,

  vite:config     lib: false,

  vite:config     ssr: false,

  vite:config     ssrManifest: false,

  vite:config     ssrEmitAssets: false,

  vite:config     reportCompressedSize: true,

  vite:config     chunkSizeWarningLimit: 500,

  vite:config     watch: null,

  vite:config     commonjsOptions: { include: [Array], extensions: [Array] },

  vite:config     dynamicImportVarsOptions: { warnOnError: true, exclude: [Array] },

  vite:config     modulePreload: { polyfill: true },

  vite:config     cssMinify: true

  vite:config   },

  vite:config   configFileDependencies: [],

  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   resolve: {

  vite:config     mainFields: [ 'module', 'jsnext:main', 'jsnext' ],

  vite:config     browserField: true,

  vite:config     conditions: [],

  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     preserveSymlinks: false,

  vite:config     alias: [ [Object], [Object] ]

  vite:config   },

  vite:config   publicDir: '/home/projects/vite-min-to-reproduce-module-preload-worker/public',

  vite:config   cacheDir: '/home/projects/vite-min-to-reproduce-module-preload-worker/node_modules/.vite',

  vite:config   command: 'build',

  vite:config   ssr: {

  vite:config     format: 'esm',

  vite:config     target: 'node',

  vite:config     optimizeDeps: { disabled: true, esbuildOptions: [Object] }

  vite:config   },

  vite:config   isWorker: false,

  vite:config   mainConfig: null,

  vite:config   isProduction: true,

  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: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:reporter',

  vite:config     'vite:load-fallback'

  vite:config   ],

  vite:config   esbuild: { jsxDev: false },

  vite:config   server: {

  vite:config     preTransformRequests: true,

  vite:config     sourcemapIgnoreList: [Function: isInNodeModules],

  vite:config     middlewareMode: false,

  vite:config     fs: { strict: true, allow: [Array], deny: [Array] }

  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: undefined,

  vite:config     headers: undefined

  vite:config   },

  vite:config   envDir: '/home/projects/vite-min-to-reproduce-module-preload-worker',

  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_/home/projects/vite-min-to-reproduce-module-preload-worker' => {

  vite:config       dir: '/home/projects/vite-min-to-reproduce-module-preload-worker',

  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   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: {},

  vite:config     getSortedPlugins: [Function: getSortedPlugins],

  vite:config     getSortedPluginHooks: [Function: getSortedPluginHooks]

  vite:config   },

  vite:config   appType: 'spa',

  vite:config   experimental: { importGlobRestoreExtension: false, hmrPartialAccept: false },

  vite:config   getSortedPlugins: [Function: getSortedPlugins],

  vite:config   getSortedPluginHooks: [Function: getSortedPluginHooks]

  vite:config } +9ms

vite v4.3.9 building for production...

  vite:esbuild 148.15ms tsconfck init /home/projects/vite-min-to-reproduce-module-preload-worker +0ms

✓ 3 modules transformed.

dist/assets/worker-552d510d.js  0.06 kB

dist/index.html                 0.42 kB │ gzip: 0.31 kB

dist/assets/index-103bb38b.js   0.79 kB │ gzip: 0.46 kB

✓ built in 642ms

```

</details>

### Validations

- [X] Follow our [Code of Conduct](https://github.com/vitejs/vite/blob/main/CODE_OF_CONDUCT.md)
- [X] Read the [Contributing Guidelines](https://github.com/vitejs/vite/blob/main/CONTRIBUTING.md).
- [X] Read the [docs](https://vitejs.dev/guide).
- [X] Check that there isn't [already an issue](https://github.com/vitejs/vite/issues) that reports the same bug to avoid creating a duplicate.
- [X] 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](https://github.com/vuejs/core) instead.
- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vitejs/vite/discussions) or join our [Discord Chat Server](https://chat.vitejs.dev/).
- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.
Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]