hexo fs.SyncWriteStream is deprecated

fs.SyncWriteStream is deprecated 出现这个错误需要更新hexo-fs插件

使用

1
2
npm install hexo-fs --save

在执行hexo命令的时候,总会显示如下报错:

1
(node:7048) [DEP0061] DeprecationWarning: fs.SyncWriteStream is deprecated.

从报错信息来看是因为fs.SyncWriteStream is deprecated,node.js从8.0开始已经弃用了fs.SyncWriteStream方法,所以是因为我们node_modules中某个插件调用了这个方法,通过查看Hexo作者GitHub对应的项目,在issue中看到有人提到这个问题,在hexo项目中其中有一个hexo-fs的插件调用了这个方法,所以需要更新hexo-fs插件,更新方法如下:

1
npm install hexo-fs --save

更新插件后问题依然无法解决。

通过–debug来查看:

1
2
3
4
5
6
[root@server init]# hexo --debug
06:55:32.711 DEBUG Hexo version: 3.5.0
06:55:32.714 DEBUG Working directory: /data/wwwroot/init/
06:55:32.787 DEBUG Config loaded: /data/wwwroot/init/_config.yml
06:55:32.832 DEBUG Plugin loaded: hexo-admin
(node:25414) [DEP0061] DeprecationWarning: fs.SyncWriteStream is deprecated.

问题出在:hexo-admin的hexo-fs
因hexo-admin作为后台管理,无法npm uninstall hexo-admin卸载,则找到对应文件,注释:

1
2
3
[root@server init]# grep -irn "SyncWriteStream" ./node_modules/hexo-admin/
./node_modules/hexo-admin/node_modules/hexo-fs/lib/fs.js:718:exports.SyncWriteStream = fs.SyncWriteStream;
[root@lywserver init]#

将对应的exports.SyncWriteStream = fs.SyncWriteStream;注释(前面 //)即可!


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!