Skip to content

Commit b73e16a

Browse files
authored
fix: esbuild emitFile should mkdir subdirectories too (#362)
1 parent 3ef83de commit b73e16a

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/esbuild/utils.ts

+8-6
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,15 @@ export function createBuildContext(initialOptions: BuildOptions): UnpluginBuildC
126126
throw new Error('unplugin/esbuild: addWatchFile outside supported hooks (resolveId, load, transform)')
127127
},
128128
emitFile(emittedFile) {
129-
// Ensure output directory exists for this.emitFile
130-
if (initialOptions.outdir && !fs.existsSync(initialOptions.outdir))
131-
fs.mkdirSync(initialOptions.outdir, { recursive: true })
132-
133129
const outFileName = emittedFile.fileName || emittedFile.name
134-
if (initialOptions.outdir && emittedFile.source && outFileName)
135-
fs.writeFileSync(path.resolve(initialOptions.outdir, outFileName), emittedFile.source)
130+
if (initialOptions.outdir && emittedFile.source && outFileName) {
131+
const outPath = path.resolve(initialOptions.outdir, outFileName)
132+
// Ensure output directory exists for this.emitFile
133+
const outDir = path.dirname(outPath)
134+
if (!fs.existsSync(outDir))
135+
fs.mkdirSync(outDir, { recursive: true })
136+
fs.writeFileSync(outPath, emittedFile.source)
137+
}
136138
},
137139
getWatchFiles() {
138140
return watchFiles

0 commit comments

Comments
 (0)