From ec5db11f7eef215d0337401b91c71e1946a30664 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 11 Apr 2022 11:29:42 +0100 Subject: [PATCH] fix: normalize `#build` windows path for dev and prerender presets (#70) --- src/presets/nitro-dev.ts | 12 +++++++++++- src/presets/nitro-prerender.ts | 12 +++++++++++- src/rollup/config.ts | 7 +------ 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/presets/nitro-dev.ts b/src/presets/nitro-dev.ts index ebf2ceed40..1e9ed9f343 100644 --- a/src/presets/nitro-dev.ts +++ b/src/presets/nitro-dev.ts @@ -1,3 +1,5 @@ +import { pathToFileURL } from 'url' +import { isWindows } from 'std-env' import { defineNitroPreset } from '../preset' export const nitroDev = defineNitroPreset({ @@ -8,5 +10,13 @@ export const nitroDev = defineNitroPreset({ }, externals: { trace: false }, inlineDynamicImports: true, // externals plugin limitation - sourceMap: true + sourceMap: true, + hooks: { + 'nitro:rollup:before' (nitro) { + if (isWindows) { + // Windows dynamic imports should be file:// url + nitro.options.alias['#build'] = pathToFileURL(nitro.options.buildDir).href + } + } + } }) diff --git a/src/presets/nitro-prerender.ts b/src/presets/nitro-prerender.ts index baabf0016d..695e9af52b 100644 --- a/src/presets/nitro-prerender.ts +++ b/src/presets/nitro-prerender.ts @@ -1,3 +1,5 @@ +import { pathToFileURL } from 'url' +import { isWindows } from 'std-env' import { defineNitroPreset } from '../preset' export const nitroPrerender = defineNitroPreset({ @@ -6,5 +8,13 @@ export const nitroPrerender = defineNitroPreset({ output: { serverDir: '{{ buildDir }}/prerender' }, - externals: { trace: false } + externals: { trace: false }, + hooks: { + 'nitro:rollup:before' (nitro) { + if (isWindows) { + // Windows dynamic imports should be file:// url + nitro.options.alias['#build'] = pathToFileURL(nitro.options.buildDir).href + } + } + } }) diff --git a/src/rollup/config.ts b/src/rollup/config.ts index 5d5401512f..6bdcc23fbc 100644 --- a/src/rollup/config.ts +++ b/src/rollup/config.ts @@ -1,4 +1,3 @@ -import { pathToFileURL } from 'url' import { dirname, join, relative, resolve } from 'pathe' import type { InputOptions, OutputOptions } from 'rollup' import defu from 'defu' @@ -12,7 +11,6 @@ import replace from '@rollup/plugin-replace' import virtual from '@rollup/plugin-virtual' import wasmPlugin from '@rollup/plugin-wasm' import inject from '@rollup/plugin-inject' -import { isWindows } from 'std-env' import { visualizer } from 'rollup-plugin-visualizer' import * as unenv from 'unenv' import type { Preset } from 'unenv' @@ -226,10 +224,7 @@ export const plugins = [ rollupConfig.plugins.push(alias({ entries: resolveAliases({ '#nitro': runtimeDir, - // Windows dynamic imports should be file:// url - '#build': nitro.options.dev && isWindows - ? pathToFileURL(nitro.options.buildDir).href - : nitro.options.buildDir, + '#build': nitro.options.buildDir, '~': nitro.options.srcDir, '@/': nitro.options.srcDir, '~~': nitro.options.rootDir,