Visual Studio Code V1.56.x 以降のsftp問題の解消方法

Visual Studio Code Version 1.56.x 以降のバージョンで、sftpエクステンションを利用し、ファイルをサーバーにも自動保存しようとするとエラーになる問題があります。

次のファイルに

~/.vscode/extensions/liximomo.sftp-1.12.9/node_modules/ssh2-streams/lib/sftp.js

下記のコードを追記し、Visual Studio Codeを再起動することで解消します。

※2929行の options.emitClose = false; の次に追加

function WriteStream(sftp, path, options) {
  if (options === undefined)
    options = {};
  else if (typeof options === 'string')
    options = { encoding: options };
  else if (options === null || typeof options !== 'object')
    throw new TypeError('"options" argument must be a string or an object');
  else
    options = Object.create(options);

  // For backwards compat do not emit close on destroy.
  options.emitClose = false;
  options.autoDestroy = false; // <--- この行を追加する

  WritableStream.call(this, options);

参考文献)SFTP error upload no such file after update VS code 1.56.0 #919

https://github.com/liximomo/vscode-sftp/issues/919#issuecomment-835249677