файл реимпорта nodejs при его изменении - PullRequest
0 голосов
/ 20 декабря 2018

Мой основной код находится в папке наблюдения за 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 голосов
/ 21 декабря 2018

Решение состоит в том, чтобы использовать 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();
})
...