mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-13 09:33:54 +00:00
fix(vite): handle base in vite/preload-helper
(#3499)
This commit is contained in:
parent
9f506ded60
commit
78761c236b
@ -49,7 +49,7 @@ export const DynamicBasePlugin = createUnplugin(function (options: DynamicBasePl
|
|||||||
|
|
||||||
if (options.globalPublicPath && id.includes('entry.ts')) {
|
if (options.globalPublicPath && id.includes('entry.ts')) {
|
||||||
injectUtils = true
|
injectUtils = true
|
||||||
s.prepend(`${options.globalPublicPath} = joinURL(NUXT_BASE, NUXT_CONFIG.app.buildAssetsDir);`)
|
s.prepend(`${options.globalPublicPath} = joinURL(NUXT_BASE, NUXT_CONFIG.app.buildAssetsDir);\n`)
|
||||||
}
|
}
|
||||||
|
|
||||||
const assetId = code.match(VITE_ASSET_RE)
|
const assetId = code.match(VITE_ASSET_RE)
|
||||||
@ -59,24 +59,21 @@ export const DynamicBasePlugin = createUnplugin(function (options: DynamicBasePl
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (injectUtils || (code.includes('NUXT_BASE') && !code.includes('const NUXT_BASE ='))) {
|
if (injectUtils || (code.includes('NUXT_BASE') && !code.includes('const NUXT_BASE ='))) {
|
||||||
s.prepend('const NUXT_BASE = NUXT_CONFIG.app.cdnURL || NUXT_CONFIG.app.baseURL;')
|
s.prepend('const NUXT_BASE = NUXT_CONFIG.app.cdnURL || NUXT_CONFIG.app.baseURL;\n')
|
||||||
|
|
||||||
if (options.env === 'dev') {
|
if (options.env === 'dev') {
|
||||||
s.prepend(`const NUXT_CONFIG = { app: ${JSON.stringify(options.devAppConfig)} };`)
|
s.prepend(`const NUXT_CONFIG = { app: ${JSON.stringify(options.devAppConfig)} };\n`)
|
||||||
} else if (options.env === 'server') {
|
} else if (options.env === 'server') {
|
||||||
s.prepend('import NUXT_CONFIG from "#config";')
|
s.prepend('import NUXT_CONFIG from "#config";\n')
|
||||||
} else {
|
} else {
|
||||||
s.prepend('const NUXT_CONFIG = __NUXT__.config;')
|
s.prepend('const NUXT_CONFIG = __NUXT__.config;\n')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (id === 'vite/preload-helper') {
|
if (id === 'vite/preload-helper') {
|
||||||
injectUtils = true
|
injectUtils = true
|
||||||
// Define vite base path as buildAssetsUrl (i.e. including _nuxt/)
|
// Define vite base path as buildAssetsUrl (i.e. including _nuxt/)
|
||||||
code.replace(
|
s.replace(/const base = ['"]\/__NUXT_BASE__\/['"]/, 'const base = joinURL(NUXT_BASE, NUXT_CONFIG.app.buildAssetsDir)')
|
||||||
/const base = ['"]\/__NUXT_BASE__\/['"]/,
|
|
||||||
'const base = joinURL(NUXT_BASE, NUXT_CONFIG.app.buildAssetsDir);'
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sanitize imports
|
// Sanitize imports
|
||||||
@ -84,7 +81,7 @@ export const DynamicBasePlugin = createUnplugin(function (options: DynamicBasePl
|
|||||||
|
|
||||||
// Dynamically compute string URLs featuring baseURL
|
// Dynamically compute string URLs featuring baseURL
|
||||||
for (const delimiter of ['`', '"', "'"]) {
|
for (const delimiter of ['`', '"', "'"]) {
|
||||||
const delimiterRE = new RegExp(`${delimiter}([^${delimiter}]*)\\/__NUXT_BASE__\\/([^${delimiter}]*)${delimiter}`, 'g')
|
const delimiterRE = new RegExp(`(?<!const base = )${delimiter}([^${delimiter}]*)\\/__NUXT_BASE__\\/([^${delimiter}]*)${delimiter}`, 'g')
|
||||||
/* eslint-disable-next-line no-template-curly-in-string */
|
/* eslint-disable-next-line no-template-curly-in-string */
|
||||||
s.replace(delimiterRE, '`$1${NUXT_BASE}$2`')
|
s.replace(delimiterRE, '`$1${NUXT_BASE}$2`')
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user