Asset name conflicts are possible in manifest.json, causing unexpected / missing asset loading #1632
Closed
Description
- Read the docs.
- Use Vite >=2.0. (1.x is no longer supported)
- If the issue is related to 1.x -> 2.0 upgrade, read the Migration Guide first.
Describe the bug
It seems that if you have an entrypoint that shares a base name with one of your asset chunks, the manifest file that ultimately gets written will suffer from loss preventing you from doing a successful backend integration.
In my repro note the following:
- I have changed the entrypoint to
src/main.js
in the vite config - main.vue is a dynamic import so will get its own css asset chunk
- Building the site, you will see it generates two css files with basename of
main
(one for the entrypoint, one for the dynamic chunk). - Note that the manifest file only has a single "main.css" record. It is ambiguous which one it refers to, but from my experience it actually ends up referring to the dynamic chunk, meaning that a record of the entrypoint styles are lost.
Reproduction
https://github.com/gryphonmyers/vite-minimal-repro/tree/manifest-name-conflict
System Info
vite
version: 2.0.0-beta.35- Operating System: macos 10.15.7
- Node version: 14.15.1
- Package manager (npm/yarn/pnpm) and version: npm 6.14.8