hexojs / hexo

A fast, simple & powerful blog framework, powered by Node.js.
https://hexo.io
MIT License
39.3k stars 4.83k forks source link

hexo server 运行时,文章修改时偶尔会出现文章空白 #4271

Closed coder-linx closed 2 years ago

coder-linx commented 4 years ago

运行系统:win7 node: v10.16.0 npm: 6.9.0 开发工具:Visual Studio Code 和 Sublime Text 3

问题:运行 npm run server 本地开发环境时候,偶尔会出现文章内容空白。

本以为此问题是插件依赖太多导致的,然后就用 npx hexo init blog 重新安装了一个初始化的 hexo ,结果还是有此问题。开发工具用了 vscode 和 st3 都出现了此问题。

给文件 node_modules/hexo/lib/box/index.js 246 行 watcher change 事件加了打印信息,获取到的信息如下:

    const fs = require('fs');
    watcher.on('change', path => {
      console.log(1111, fs.statSync(path).size);
      setTimeout(() => {
        console.log(2222, fs.statSync(path).size);
      }, 60);
      this._processFile(File.TYPE_UPDATE, getPath(path));
    });

保存 source\_posts\hello-world.md 触发 change 事件。 文件正常大小是 876 ,出现问题时候大小为 0,加上延迟事件为正常大小 876。 bug

stevenjoezhang commented 4 years ago

有 typora 用户报告过类似情况 https://github.com/hexojs/hexo/issues/2245

coder-linx commented 4 years ago

这问题影响倒不是很大,多保存几次内容就有了。主要是使用 hexo-browsersync 热更新的时候,内容空白会导致热更新失败,后面就算编译成功,热更新也无效了,需要手动刷新浏览器。

stevenjoezhang commented 2 years ago

这个问题应该是被解决了: https://github.com/hexojs/hexo/pull/4633 如果在 Hexo 5.4.0 或更新版本还能复现这个问题,可以回复一下