UNPKG

vue-keep-alive-dev

Version:

A plugin to resolve HMR issues with the core keep-alive plugin

45 lines (33 loc) 1.5 kB
# VueKeepAliveDev This plugin resolves an issue where webpack's Hot Module Replacement (MHR) doesn't work for `keep-alive` components (e.g. `router-view`, etc). I was struggling to deal with the suggested workarounds that just disable `keep-alive` in development with exclude patterns or a dynamic component. I quickly noticed that this creates a completely different hook flow where the created/activated/deactived/destroyed hooks would have be tuned based on local vs production and it was getting ugly! Hoping this solution helps others avoid having to create confusing patterns between dev & production. ## Credit Full credit to nailfar & ericwu-wish in https://github.com/vuejs/vue-loader/issues/1332 for this *entire* solution. I just packaged it up to make this easier. ## Installation ### 1. Install ```sh yarn add vue-keep-alive-dev # or npm i vue-keep-alive-dev --save ``` ### 2. Activate ```js import VueKeepAliveDev from 'vue-keep-alive-dev' Vue.use(VueKeepAliveDev, { environment: 'development' // Your environment when HMR is in use }); ``` ### 3. Run In your package.json ensure that the `NODE_ENV` lines up with whatever you're setting when compiling Vue. Example: ```json { "scripts": { "dev": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --progress --inline --hot --config=webpack.config.js" } } ``` ## Configuration * `environment` - The `NODE_ENV` when HMR is in use. Defaults to `development`. ## License MIT