12345678910111213141516171819202122232425262728293031 |
- const hotReloadAPIPath = JSON.stringify(require.resolve('vue-hot-reload-api'))
- const genTemplateHotReloadCode = (id, request) => {
- return `
- module.hot.accept(${request}, function () {
- api.rerender('${id}', {
- render: render,
- staticRenderFns: staticRenderFns
- })
- })
- `.trim()
- }
- exports.genHotReloadCode = (id, functional, templateRequest) => {
- return `
- /* hot reload */
- if (module.hot) {
- var api = require(${hotReloadAPIPath})
- api.install(require('vue'))
- if (api.compatible) {
- module.hot.accept()
- if (!api.isRecorded('${id}')) {
- api.createRecord('${id}', component.options)
- } else {
- api.${functional ? 'rerender' : 'reload'}('${id}', component.options)
- }
- ${templateRequest ? genTemplateHotReloadCode(id, templateRequest) : ''}
- }
- }
- `.trim()
- }
|