解决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窗口才生效。
感谢
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。