Oct1a

解决vscode上的sftp插件使用时提示“Error: No such file”

vscode上的sftp每次上传都会提示文件不存在,虽然不影响最后结果,但每次看到弹窗总感觉是有问题的。

[09-20 18:18:03] [error] Error: No such file
    at SFTPStream._transform (c:\Users\Oct1a\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2-streams\lib\sftp.js:412:27)
    at SFTPStream.Transform._read (internal/streams/transform.js:205:10)
    at SFTPStream._read (c:\Users\Oct1a\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2-streams\lib\sftp.js:183:15)
    at SFTPStream.Transform._write (internal/streams/transform.js:193:12)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at SFTPStream.Writable.write (internal/streams/writable.js:303:10)
    at Channel.ondata (internal/streams/readable.js:719:22)
    at Channel.emit (events.js:315:20)
    at addChunk (internal/streams/readable.js:309:12)
    at readableAddChunk (internal/streams/readable.js:284:9)
    at Channel.Readable.push (internal/streams/readable.js:223:10)
    at SSH2Stream.<anonymous> (c:\Users\Oct1a\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2\lib\Channel.js:167:15)
    at SSH2Stream.emit (events.js:315:20)
    at parsePacket (c:\Users\Oct1a\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2-streams\lib\ssh.js:3288:10)
    at SSH2Stream._transform (c:\Users\Oct1a\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2-streams\lib\ssh.js:694:13)
    at SSH2Stream.Transform._read (internal/streams/transform.js:205:10)
    at SSH2Stream._read (c:\Users\Oct1a\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2-streams\lib\ssh.js:253:15)
    at SSH2Stream.Transform._write (internal/streams/transform.js:193:12)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at SSH2Stream.Writable.write (internal/streams/writable.js:303:10)
    at Socket.ondata (internal/streams/readable.js:719:22)
    at Socket.emit (events.js:315:20)
    at addChunk (internal/streams/readable.js:309:12)
    at readableAddChunk (internal/streams/readable.js:284:9)
    at Socket.Readable.push (internal/streams/readable.js:223:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:188:23) when local ➞ remote c:\Users\Oct1a\Desktop\tex\SJTUThesis-master\README.m

四种解决方法

方法1

进入插件路径C:\Users\%UserProfile%\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2\lib
打开 sftp.js 文件
搜索 options.emitClose = false;
添加options.autoDestroy = false;到两个地方的后面

重启vscode

方法2

我就是用该方法解决的。

.vscode\extensions\liximomo.sftp-1.12.9\package.json打开该文件,更改里面ssh2的版本

把原先自带的版本 “ssh2”: “^x.x.x” 改为”ssh2”: “^1.1.0”然后在目录下重新npm install ,最后重启vscode

目录下,也就是.vscode\extensions\liximomo.sftp-1.12.9 这下面打开cmd,输入npm install

方法3

更改vscode版本,vscode1.56.0版本的会出现该问题,回退到1.55.2问题解决

方法4

这种方式没试验过,不确定是否可行,请自行尝试

a. download my modded v0.4.11 ssh2-streams module version from HERE !
b. go to $HOME/.vscode/extensions/liximomo.sftp-1.12.9/node_modules. (on Windows replace $HOME with %UserProfile%).
c. delete “ssh2-streams” folder.
d. extract here the downloaded archive (modded v0.4.11 ssh2-streams version).
e. you should now have $HOME/.vscode/extensions/liximomo.sftp-1.12.9/node_modules/ssh2-streams (on Windows replace $HOME with %UserProfile%).
d. restart Visual Studio Code.

说明

不管用哪个办法,最后都记得要重启下vscode窗口才生效。

感谢

SFTP error upload no such file after update VS code 1.56.0 · Issue #919 · liximomo/vscode-sftp (github.com)

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。