javascript - 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”
解决方案
解决方案是使用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();
})
推荐阅读
- python - 查询多索引数据框后获取熊猫多索引的值
- reactjs - 如何使用 Webpack 和 Code Split 创建 React 小部件库
- c# - 当我尝试保存本地实体时,ef core 抛出异常
- ruby - 在ruby中将中文字符转换为UTF-8
- powerbi - PowerBI 和 MAX 乘积?
- reactjs - 在地图上显示实际土地面积
- c++ - HackerRank 的 Connected Cells 问题的实现解决方案
- java - 如何使用 OpenXava/JPA 验证嵌套引用对象 (@ManyToOne) 是否存在?
- apache-spark - 如何在 GKE 中部署的 apache spark 中使用 GCS 连接器?
- sql - 动态分区