From 7a631c204bbee86f8ef8649540bca56fd747bf0a Mon Sep 17 00:00:00 2001 From: Blake Kostner Date: Tue, 16 Jan 2018 16:29:05 -0700 Subject: [PATCH 1/2] feat(ssr): add 'renderCriticalStyles' function for template --- src/server/template-renderer/index.js | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/server/template-renderer/index.js b/src/server/template-renderer/index.js index dabc08a149c..eb9ed6227d9 100644 --- a/src/server/template-renderer/index.js +++ b/src/server/template-renderer/index.js @@ -107,19 +107,24 @@ export default class TemplateRenderer { } } - renderStyles (context: Object): string { + renderCriticalStyles (context: Object): string { + // context.styles is a getter exposed by vue-style-loader which contains + // the inline component styles collected during SSR + return (context.styles || '') + } + + renderStyleLinks (context: Object): string { const cssFiles = this.clientManifest ? this.clientManifest.all.filter(isCSS) : [] - return ( - // render links for css files - (cssFiles.length - ? cssFiles.map(file => ``).join('') - : '') + - // context.styles is a getter exposed by vue-style-loader which contains - // the inline component styles collected during SSR - (context.styles || '') - ) + + return cssFiles.length + ? cssFiles.map(file => ``).join('') + : '' + } + + renderStyles (context: Object): string { + return this.renderCriticalStyles(context) + this.renderStyleLinks(context) } renderResourceHints (context: Object): string { From 85dffb2103a3314bd29348f62aed728738c7bd00 Mon Sep 17 00:00:00 2001 From: Blake Kostner Date: Tue, 16 Jan 2018 19:34:19 -0700 Subject: [PATCH 2/2] Update renderStyles order --- src/server/template-renderer/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/template-renderer/index.js b/src/server/template-renderer/index.js index eb9ed6227d9..f3a587c9bee 100644 --- a/src/server/template-renderer/index.js +++ b/src/server/template-renderer/index.js @@ -124,7 +124,7 @@ export default class TemplateRenderer { } renderStyles (context: Object): string { - return this.renderCriticalStyles(context) + this.renderStyleLinks(context) + return this.renderStyleLinks(context) + this.renderCriticalStyles(context) } renderResourceHints (context: Object): string {