Node.js: how to reload module

前端 未结 3 1277
走了就别回头了
走了就别回头了 2021-02-04 03:37

I am new to NodeJS so probably I am doing some mistakes.

I have written a bunch of code in an external file called myapp. I start NodeJS for windows and from the interpr

3条回答
  •  没有蜡笔的小新
    2021-02-04 04:39

    There are some answers here as suggested in the comments.

    However they are not REPL friendly, and might even use extra modules.

    Here is a one line solution that you can paste in your REPL, inspired by the discussion on the other question:

    function nocache(module) {require("fs").watchFile(require("path").resolve(module), () => {delete require.cache[require.resolve(module)]})}
    

    The function will delete your module from the cache each time the file changes. To use it, just paste it in the REPL, call uncache("d:/myapp.js"), then use require normally.

    > function nocache(module) {require("fs").watchFile(require("path").resolve(module), () => {delete require.cache[require.resolve(module)]})}
    > nocache("d:/myapp.js");
    > var myapp = require("d:/myapp.js");
    ......
    > myapp = require("d:/myapp.js");
    ....
    

提交回复
热议问题