VSCode 插件 sftp 错误 isDate 修复方法

2026年8月5日技巧分享评论438字数 913阅读3分2秒阅读模式

isDate错误

现在已经都使用 VSCode 的 SFTP 插件来进行远程服务器的文件传输了,我用的是 natizyskunk.sftp 这个插件,但是使用时会报一个错误。

TypeError: isDate is not a function
at attrsToBytes (/Users/shejibiji/.vscode/extensions/natizyskunk.sftp-1.16.3/node_modules/ssh2/lib/protocol/SFTP.js:2492:45)
at SFTP.open (/Users/shejibiji/.vscode/extensions/natizyskunk.sftp-1.16.3/node_modules/ssh2/lib/protocol/SFTP.js:331:15) 

修复这个问题简单,所以之前每次都顺手给修改了。

但是更换设备或者清空了 VSCode 的插件缓存后就会再次出现这个问题,

于是记录下来,也方便以后遇到同样问题的朋友们。

这个错误是由于比较旧版本的 ssh2 依赖库在使用 isDate 函数时,误将其当作一个普通函数调用,而实际上在它引入的工具类(通常是 util 模块)中,该函数可能未被正确导出或已被废弃(例如 Node.js 新版本移除了 util.isDate)。

因为 natizyskunk.sftp 插件已经很久没有更新了,最快、最彻底的修复方法是直接修改本地插件的代码

修复方法

# 打开编辑对应的插件JS文件
vim /Users/shejibiji/.vscode/extensions/natizyskunk.sftp-1.16.3/node_modules/ssh2/lib/protocol/SFTP.js
# 找到这句
  # const { inherits, isDate } = require('util');
# 将其修改为
const { inherits } = require('util');
const isDate = (val) => val instanceof Date;
# 保存退出即可。

现在再上传或者下载就可以正常使用了。

由于缓存的原因,如果还报同样的错误,可以尝试重启 VSCode 或者清除插件缓存。

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定