gpt4 book ai didi

node.js - Nodejs 在 chokidar 的 watcher.on('change) 返回空字符串后打印 fs.readfile 数据

转载 作者:行者123 更新时间:2023-12-02 00:58:41 24 4
gpt4 key购买 nike

每当文件发生变化时,我都会尝试读取该文件。文件更改是 webpack 输出。即使更改的文件不是空的,它也会给出不一致的结果,它返回一个空字符串。我附上了 screenshot of the logs .

var watcher = chokidar.watch(path.resolve(__dirname, '../../dist/main.root.js'), /^\./, {persistent : true, usePolling: true, interval: 1000})

watcher
.on('add', path => {
// fileAdded(path)
console.log(`File ${path} has been added`, Date.now())
})
.on('change', path => {
console.log(`File ${path} has been changed`)
fileChanged(path)
})

function fileChanged (path) {
fs.readFile(path, 'utf8', (err, data) => {
if (err) {
console.error(err)
} else {
var target = data
console.log('***target***', typeof target, target)
console.log('***path***', path)
}
})
}

最佳答案

问题是 chokidar 不会等待文件写入完成,除非它是通过配置定义的。退房 chokidar-get-started最重要的是:

  awaitWriteFinish: {
stabilityThreshold: 2000,
pollInterval: 100
}

此设置应该可以解决您的问题。

关于node.js - Nodejs 在 chokidar 的 watcher.on('change) 返回空字符串后打印 fs.readfile 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52214121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com