更改时,nodejs重新导入文件

时间:2018-12-20 14:50:25

标签: javascript node.js typescript chokidar

我的主要代码在chokidar监视的文件夹下,当文件更改时它会发出事件

主要脚本是这个

const fileName = "test.ts";
import(fileName).then((t: any) => {
  t.default();
});

这是文件test.ts

export default () => {
  console.log("aaa");
};

更改test.ts时需要重新导入文件,例如,我需要

  

START脚本

     

输出“ aaa”

     

将test.ts从“ console.log(” aaa“)”更改为“ console.log(” bbb“)”

     

输出“ bbb”

1 个答案:

答案 0 :(得分:1)

解决方案是使用 decache ,完整的代码是这样的(使用 chokidar 文件夹监视程序)

const folder = chokidar.watch("./myFolder", {
    ignored: /(^|[\/\\])\../,
    persistent: true,
});
folder
.on("add", (fileName: string) => {
    const mod = require(fileName)
    mod.default();
.on("change", (fileName: string) => {
    decache(fileName);
    const mod = require(fileName)
    mod.default();
})