首先我們準(zhǔn)備一個mod.js
的模塊文件修肠。
var a = 1;
exports.a = a;
再準(zhǔn)備一個測試文件test.js
。
const fs = require('fs');
const path = require('path');
// 單位:毫秒
function sleep(delay) {
return new Promise(resolve => setTimeout(resolve, delay))
}
(async () => {
let mod = require('./mod.js');
fs.watch(require.resolve('./mod.js'), function () {
console.log('文件有更新了.')
let modPath = path.resolve('./mod.js');
delete require.cache[modPath];
mod = require('./mod.js');
});
console.log(mod.a, 'Start sleep');
await sleep(12*1000);
console.log('sleep over', mod.a);
})()
運(yùn)行程序后户盯,我們修改mod.js
中a
的值嵌施,我們會發(fā)現(xiàn)輸出會跟著變化,實(shí)現(xiàn)熱更新莽鸭。