美文网首页
NodeJS的Require如何实现热更新?

NodeJS的Require如何实现热更新?

作者: iStudyBoy | 来源:发表于2020-05-04 06:29 被阅读0次

首先我们准备一个mod.js的模块文件。

var a = 1;
exports.a = a;

再准备一个测试文件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);
})()

运行程序后,我们修改mod.jsa的值,我们会发现输出会跟着变化,实现热更新。

相关文章

  • NodeJS的Require如何实现热更新?

    首先我们准备一个mod.js的模块文件。 再准备一个测试文件test.js。 运行程序后,我们修改mod.js中a...

  • 2018-12-07复习node

    nodejs const http=require('http');const fs=require('fs');...

  • 模块化

    在nodejs中,可以通过exports或module.exports 和 require 实现模块化export...

  • node.js

    nodejs 安装 var http = require('http');var fs = require('fs...

  • 手写一个后端服务器

    一、nodejs写服务器 var http = require('http') //是nodejs的内置模块 - ...

  • 一步步教你实现Android HotFix热更新

    这篇文章是手把手教你如何实现热更新的 我先简要介绍一下实现热更新的一些要点: (1)如何防止类被打上CLASS_I...

  • 我的第一个nodejs全栈程序

    用nodejs做一个登陆网站功能,集成后台逻辑,实现页面提供。 const http = require('htt...

  • maibao-bond

    Require nodejs package, and init express framework Requi...

  • Webpack 如何实现热更新?

    模块热更新(热替换),其目的是为了加快用户的开发速度,提高编程体验。它并不适用于生产环境,这意味着它应当只在开发环...

  • 如何实现iOS热更新

    最近被苹果审核整怕了,每次提交版本都得等待一周到两周的审核时间,我是受不了这种速度了,于是决定研究有没有其他的方法...

网友评论

      本文标题:NodeJS的Require如何实现热更新?

      本文链接:https://www.haomeiwen.com/subject/ubosghtx.html