Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: rollup watch crash on Windows #13339

Merged
merged 1 commit into from
Aug 7, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions packages/vite/src/node/plugins/asset.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,10 @@ export function renderAssetUrlInJS(
return s
}

// During build, if we don't use a virtual file for public assets, rollup will
// watch for these ids resulting in watching the root of the file system in Windows,
const viteBuildPublicIdPrefix = '\0vite:asset:public'

/**
* Also supports loading plain strings with import text from './foo.txt?raw'
*/
Expand All @@ -153,11 +157,17 @@ export function assetPlugin(config: ResolvedConfig): Plugin {
// will fail to resolve in the main resolver. handle them here.
const publicFile = checkPublicFile(id, config)
if (publicFile) {
return id
return config.command === 'build'
? `${viteBuildPublicIdPrefix}${id}`
: id
}
},

async load(id) {
if (id.startsWith(viteBuildPublicIdPrefix)) {
id = id.slice(viteBuildPublicIdPrefix.length)
}

if (id[0] === '\0') {
// Rollup convention, this id should be handled by the
// plugin that marked it with \0
Expand Down Expand Up @@ -252,7 +262,7 @@ export async function fileToUrl(
function fileToDevUrl(id: string, config: ResolvedConfig) {
let rtn: string
if (checkPublicFile(id, config)) {
// in public dir, keep the url as-is
// in public dir during dev, keep the url as-is
rtn = id
} else if (id.startsWith(config.root)) {
// in project root, infer short public path
Expand Down