Nuxt/examples/with-amp/nuxt.config.js

40 lines
1.3 KiB
JavaScript
Raw Normal View History

const modifyHtml = (html) => {
// Add amp-custom tag to added CSS
html = html.replace(/<style data-vue-ssr/g, '<style amp-custom data-vue-ssr')
// Remove every script tag from generated HTML
html = html.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '')
// Add AMP script before </head>
const ampScript = '<script async src="https://cdn.ampproject.org/v0.js"></script>'
html = html.replace('</head>', ampScript + '</head>')
return html
}
2018-03-16 16:12:06 +00:00
export default {
2018-01-05 11:54:42 +00:00
head: {
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width,minimum-scale=1' }
],
link: [
{ rel: 'canonical', href: '/' },
{ rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Roboto' }
]
},
css: ['~/assets/main.css'],
loading: false, // Disable loading bar since AMP will not generate a dynamic page
render: {
// Disable resourceHints since we don't load any scripts for AMP
resourceHints: false
},
hooks: {
// This hook is called before generatic static html files for SPA mode
'generate:page': (page) => {
page.html = modifyHtml(page.html)
},
2018-01-05 11:54:42 +00:00
// This hook is called before rendering the html to the browser
'render:route': (url, page, { req, res }) => {
page.html = modifyHtml(page.html)
2018-01-05 11:54:42 +00:00
}
}
}