mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-23 14:15:13 +00:00
fix(generator): minify spa fallback (#5791)
This commit is contained in:
parent
b2a8b9f3f2
commit
fd3ee629fa
@ -153,7 +153,14 @@ export default class Generator {
|
||||
}
|
||||
|
||||
// Render and write the SPA template to the fallback path
|
||||
const { html } = await this.nuxt.server.renderRoute('/', { spa: true })
|
||||
let { html } = await this.nuxt.server.renderRoute('/', { spa: true })
|
||||
|
||||
try {
|
||||
html = this.minifyHtml(html)
|
||||
} catch (error) {
|
||||
consola.warn(`HTML minification failed for SPA fallback`)
|
||||
}
|
||||
|
||||
await fsExtra.writeFile(fallbackPath, html, 'utf8')
|
||||
}
|
||||
|
||||
@ -221,26 +228,14 @@ export default class Generator {
|
||||
return false
|
||||
}
|
||||
|
||||
let minificationOptions = this.options.build.html.minify
|
||||
|
||||
// Legacy: Override minification options with generate.minify if present
|
||||
// TODO: Remove in Nuxt version 3
|
||||
if (typeof this.options.generate.minify !== 'undefined') {
|
||||
minificationOptions = this.options.generate.minify
|
||||
consola.warn('generate.minify has been deprecated and will be removed in the next major version.' +
|
||||
' Use build.html.minify instead!')
|
||||
}
|
||||
|
||||
if (minificationOptions) {
|
||||
try {
|
||||
html = htmlMinifier.minify(html, minificationOptions)
|
||||
html = this.minifyHtml(html)
|
||||
} catch (err) {
|
||||
const minifyErr = new Error(
|
||||
`HTML minification failed. Make sure the route generates valid HTML. Failed HTML:\n ${html}`
|
||||
)
|
||||
pageErrors.push({ type: 'unhandled', route, error: minifyErr })
|
||||
}
|
||||
}
|
||||
|
||||
let fileName
|
||||
|
||||
@ -276,4 +271,22 @@ export default class Generator {
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
minifyHtml(html) {
|
||||
let minificationOptions = this.options.build.html.minify
|
||||
|
||||
// Legacy: Override minification options with generate.minify if present
|
||||
// TODO: Remove in Nuxt version 3
|
||||
if (typeof this.options.generate.minify !== 'undefined') {
|
||||
minificationOptions = this.options.generate.minify
|
||||
consola.warn('generate.minify has been deprecated and will be removed in the next major version.' +
|
||||
' Use build.html.minify instead!')
|
||||
}
|
||||
|
||||
if (!minificationOptions) {
|
||||
return html
|
||||
}
|
||||
|
||||
return htmlMinifier.minify(html, minificationOptions)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user