mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
c2eaf26ea9
* Remove flow-typed * Remove flow types * Remove the last types * Bring back taskr dependency * Revert "Bring back taskr dependency" This reverts commit 38cb95d7274d63fe63c6ac3c95ca358a28c17895. * Bring back preset-flow as it’s used for tests * Revert "Revert "Bring back taskr dependency"" This reverts commit b4c933ef133f4039f544fb10bf31d5c95d3b27a2.
30 lines
787 B
JavaScript
30 lines
787 B
JavaScript
function deleteCache (path) {
|
|
delete require.cache[path]
|
|
}
|
|
|
|
// This plugin flushes require.cache after emitting the files. Providing 'hot reloading' of server files.
|
|
export default class NextJsRequireCacheHotReloader {
|
|
constructor () {
|
|
this.prevAssets = null
|
|
}
|
|
apply (compiler) {
|
|
compiler.hooks.afterEmit.tapAsync('NextJsRequireCacheHotReloader', (compilation, callback) => {
|
|
const { assets } = compilation
|
|
|
|
if (this.prevAssets) {
|
|
for (const f of Object.keys(assets)) {
|
|
deleteCache(assets[f].existsAt)
|
|
}
|
|
for (const f of Object.keys(this.prevAssets)) {
|
|
if (!assets[f]) {
|
|
deleteCache(this.prevAssets[f].existsAt)
|
|
}
|
|
}
|
|
}
|
|
this.prevAssets = assets
|
|
|
|
callback()
|
|
})
|
|
}
|
|
}
|