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 + } + } } } 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.` )