mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
remove the monkeypatch of watchpack (#580)
This commit is contained in:
parent
629051db2c
commit
8d543bd148
|
@ -23,77 +23,10 @@ export default class WatchRemoveEventPlugin {
|
||||||
}, callbackUndelayed)
|
}, callbackUndelayed)
|
||||||
|
|
||||||
const watchpack = watchFileSystem.watcher
|
const watchpack = watchFileSystem.watcher
|
||||||
watchpack.fileWatchers.forEach((w) => {
|
watchpack.on('remove', (file) => {
|
||||||
w.on('remove', this.onRemove.bind(this, watchpack, w.path))
|
this.removedFiles.push(file)
|
||||||
})
|
})
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onRemove (watchpack, file) {
|
|
||||||
this.removedFiles.push(file)
|
|
||||||
watchpack.emit('remove', file)
|
|
||||||
watchpack._onChange(file)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// monkeypatching watchpack module to fix
|
|
||||||
// https://github.com/webpack/watchpack/pull/33
|
|
||||||
|
|
||||||
let DirectoryWatcher
|
|
||||||
try {
|
|
||||||
DirectoryWatcher = require('webpack/node_modules/watchpack/lib/DirectoryWatcher')
|
|
||||||
} catch (err) {
|
|
||||||
DirectoryWatcher = require('watchpack/lib/DirectoryWatcher')
|
|
||||||
}
|
|
||||||
|
|
||||||
/* eslint-disable */
|
|
||||||
var FS_ACCURENCY = 10000;
|
|
||||||
|
|
||||||
function withoutCase(str) {
|
|
||||||
return str.toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
DirectoryWatcher.prototype.setFileTime = function setFileTime(filePath, mtime, initial, type) {
|
|
||||||
var now = Date.now();
|
|
||||||
var old = this.files[filePath];
|
|
||||||
|
|
||||||
this.files[filePath] = [initial ? Math.min(now, mtime) : now, mtime];
|
|
||||||
|
|
||||||
// we add the fs accurency to reach the maximum possible mtime
|
|
||||||
if(mtime)
|
|
||||||
mtime = mtime + FS_ACCURENCY;
|
|
||||||
|
|
||||||
if(!old) {
|
|
||||||
if(mtime) {
|
|
||||||
if(this.watchers[withoutCase(filePath)]) {
|
|
||||||
this.watchers[withoutCase(filePath)].forEach(function(w) {
|
|
||||||
if(!initial || w.checkStartTime(mtime, initial)) {
|
|
||||||
w.emit("change", mtime);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if(!initial && mtime && type !== "add") {
|
|
||||||
if(this.watchers[withoutCase(filePath)]) {
|
|
||||||
this.watchers[withoutCase(filePath)].forEach(function(w) {
|
|
||||||
w.emit("change", mtime);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} else if(!initial && !mtime) {
|
|
||||||
delete this.files[filePath];
|
|
||||||
if(this.watchers[withoutCase(filePath)]) {
|
|
||||||
this.watchers[withoutCase(filePath)].forEach(function(w) {
|
|
||||||
w.emit("remove");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(this.watchers[withoutCase(this.path)]) {
|
|
||||||
this.watchers[withoutCase(this.path)].forEach(function(w) {
|
|
||||||
if(!initial || w.checkStartTime(mtime, initial)) {
|
|
||||||
w.emit("change", filePath, mtime);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
/* eslint-enable */
|
|
||||||
|
|
Loading…
Reference in a new issue