首页 > 解决方案 > nodejs在更改时重新导入文件

问题描述

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

主要脚本是这个

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

这是文件 test.ts

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

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

启动脚本

输出“aaa”

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

输出“bbb”

标签: javascriptnode.jstypescriptchokidar

解决方案


解决方案是使用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();
})

推荐阅读