mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-21 06:39:56 -06:00
26 lines
1.1 KiB
JavaScript
26 lines
1.1 KiB
JavaScript
// A dev-only middleware that resets service workers for the current host:port
|
|
// This is for dealing with cases where a developer loads the dev and prod
|
|
// versions of an app on the same host:port combination, causing the prod
|
|
// service worker to hijack subsequent visists in dev mode.
|
|
|
|
// Note this doesn't always immediately fix the problem - if the server used
|
|
// to serve the production app has a long cache header for /service-worker.js,
|
|
// this noop service worker will not be able to take effect. In such cases,
|
|
// the developer will have to manually unregister the service worker in
|
|
// Chrome Devtools -> Application -> Service Workers
|
|
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
const resetScript = fs.readFileSync(path.resolve(__dirname, 'noopServiceWorker.js'), 'utf-8')
|
|
|
|
module.exports = function createNoopServiceWorkerMiddleware () {
|
|
return function noopServiceWorkerMiddleware (req, res, next) {
|
|
if (req.url === '/service-worker.js') {
|
|
res.setHeader('Content-Type', 'text/javascript')
|
|
res.send(resetScript)
|
|
} else {
|
|
next()
|
|
}
|
|
}
|
|
}
|