fix rejection when removing and readding self-accepted module
fixes #9198 Co-authored-by: rixo <eric@rixo.fr>
This commit is contained in:
parent
671cb184e3
commit
46b428b9d9
|
@ -290,7 +290,7 @@ module.exports = function() {
|
|||
var outdatedModules = [updateModuleId];
|
||||
var outdatedDependencies = {};
|
||||
|
||||
var queue = outdatedModules.slice().map(function(id) {
|
||||
var queue = outdatedModules.map(function(id) {
|
||||
return {
|
||||
chain: [id],
|
||||
id: id
|
||||
|
@ -467,12 +467,15 @@ module.exports = function() {
|
|||
moduleId = outdatedModules[i];
|
||||
if (
|
||||
installedModules[moduleId] &&
|
||||
installedModules[moduleId].hot._selfAccepted
|
||||
)
|
||||
installedModules[moduleId].hot._selfAccepted &&
|
||||
// removed self-accepted modules should not be required
|
||||
appliedUpdate[moduleId] !== warnUnexpectedRequire
|
||||
) {
|
||||
outdatedSelfAcceptedModules.push({
|
||||
module: moduleId,
|
||||
errorHandler: installedModules[moduleId].hot._selfAccepted
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Now in "dispose" phase
|
||||
|
@ -539,7 +542,7 @@ module.exports = function() {
|
|||
}
|
||||
}
|
||||
|
||||
// Not in "apply" phase
|
||||
// Now in "apply" phase
|
||||
hotSetStatus("apply");
|
||||
|
||||
hotCurrentHash = hotUpdateNewHash;
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
import ok from "./module";
|
||||
|
||||
it("should abort when module is not accepted", done => {
|
||||
expect(ok).toBe("ok1-inner");
|
||||
NEXT(
|
||||
require("../../update")(done, true, () => {
|
||||
expect(ok).toBe("ok2");
|
||||
NEXT(
|
||||
require("../../update")(done, true, () => {
|
||||
expect(ok).toBe("ok3-inner");
|
||||
done();
|
||||
})
|
||||
);
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
if (module.hot) {
|
||||
module.hot.accept("./module");
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
module.hot.accept();
|
||||
|
||||
export default "-inner";
|
|
@ -0,0 +1,9 @@
|
|||
import inner from "./inner";
|
||||
|
||||
export default "ok1" + inner;
|
||||
---
|
||||
export default "ok2";
|
||||
---
|
||||
import inner from "./inner";
|
||||
|
||||
export default "ok3" + inner;
|
Loading…
Reference in New Issue