From 529df3b32e7c96294548623f21fb5cc157ce4f68 Mon Sep 17 00:00:00 2001 From: taylorliu Date: Mon, 15 Apr 2019 20:45:34 +0800 Subject: [PATCH 1/2] fix(keep-alive): fix keep-alive memory leak --- src/core/components/keep-alive.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/core/components/keep-alive.js b/src/core/components/keep-alive.js index fb4cf1e883b..bc59a8fcb27 100644 --- a/src/core/components/keep-alive.js +++ b/src/core/components/keep-alive.js @@ -120,5 +120,13 @@ export default { vnode.data.keepAlive = true } return vnode || (slot && slot[0]) + }, + updated() { + const { cache } = this + for(let key in cache) { + if(cache[key] && cache[key].parent && (cache[key].tag != this._vnode.tag)) { + cache[key].parent = null + } + } } } From 5c3684bf487e0ecc140893e46c8e38e5b1cf0996 Mon Sep 17 00:00:00 2001 From: taylorliu Date: Sat, 3 Aug 2019 19:40:15 +0800 Subject: [PATCH 2/2] fix(ssr): change throw error to warn to fix hot reload --- src/server/webpack-plugin/server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/webpack-plugin/server.js b/src/server/webpack-plugin/server.js index 305b4bab58b..9a2a89ddac2 100644 --- a/src/server/webpack-plugin/server.js +++ b/src/server/webpack-plugin/server.js @@ -1,4 +1,4 @@ -import { validate, isJS, onEmit } from './util' +import { validate, isJS, onEmit, warn } from './util' export default class VueSSRServerPlugin { constructor (options = {}) { @@ -23,7 +23,7 @@ export default class VueSSRServerPlugin { const entryAssets = entryInfo.assets.filter(isJS) if (entryAssets.length > 1) { - throw new Error( + warn( `Server-side bundle should have one single entry file. ` + `Avoid using CommonsChunkPlugin in the server config.` )