From 6bb389d9260f250d69b5e44e48610614a4a5ca3f Mon Sep 17 00:00:00 2001 From: Mark Brouch Date: Mon, 9 Oct 2017 22:32:20 -0500 Subject: [PATCH 1/2] feat(ssr): auto-remove initial state script if prod Enable intial state script to automatically remove itself from the DOM if server environment is prod. https://github.com/vuejs/vue/issues/6761 --- src/server/template-renderer/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/template-renderer/index.js b/src/server/template-renderer/index.js index 48aa0caa68d..eabce4585d8 100644 --- a/src/server/template-renderer/index.js +++ b/src/server/template-renderer/index.js @@ -191,10 +191,13 @@ export default class TemplateRenderer { contextKey = 'state', windowKey = '__INITIAL_STATE__' } = options || {} + const autoRemove = process.env.NODE_ENV === 'production' + ? 'var s;(s=document.currentScript||document.scripts[document.scripts.length-1]).parentNode.removeChild(s);' + : '' return context[contextKey] ? `` + }${autoRemove}` : '' } From 2409ff0e2feb4a465ed7eecbf9dc4e58547908b8 Mon Sep 17 00:00:00 2001 From: Mark Brouch Date: Tue, 10 Oct 2017 10:04:00 -0500 Subject: [PATCH 2/2] feat(ssr): wrap script in IIFE Wrap auto-remove script in IIFE so that global scope is not polluted. https://github.com/vuejs/vue/issues/6761 --- 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 eabce4585d8..680e1713a92 100644 --- a/src/server/template-renderer/index.js +++ b/src/server/template-renderer/index.js @@ -192,7 +192,7 @@ export default class TemplateRenderer { windowKey = '__INITIAL_STATE__' } = options || {} const autoRemove = process.env.NODE_ENV === 'production' - ? 'var s;(s=document.currentScript||document.scripts[document.scripts.length-1]).parentNode.removeChild(s);' + ? '(function(){var s;(s=document.currentScript||document.scripts[document.scripts.length-1]).parentNode.removeChild(s);}());' : '' return context[contextKey] ? `