VSCodeのSFTPプラグインが出す「No such file」エラーへの対処

現時点(2021年5月11日)で最新バージョンのVSCode(ver. 1.56.0)について、このバージョンに上げると、SFTPプラグインの拡張機能(SFTP ver. 1.12.9)がうまく動作しません。これについて、さしあたりの対処法を記述します。

2021-05-11

目次

No such file エラー

最近vscodeをアップデートしたよ(ver 1.56.0)という方で、SFTPプラグインを利用して、VSCodeで編集したファイルを、FTP通信によってupload, downloadをいつも通り行うと、No such fileエラーをこの拡張機能が吐き出すようになってしまったと思います。

このエラーは、VSCodeの1.56.0へのアップデートに伴う、内部のNodeバージョンアップ(12系→14系)が原因で、SFTPプラグインはここ2年程度メンテナンスされていないので、Nodeの14系に対する互換性がないために生じているようです。

エラー対処法

現状根本的な解決法は見つかっておらず、一時凌ぎの解決法として、2通りの方法がGithubのissueで議論されていました。

  1. VSCodeのバージョンを、1.55以下にダウングレードする
  2. SFTPプラグインのcoreファイルをいじる

できれば、VSCodeのバージョンは下げたくない、という方が多いと思うので、本記事では2番目の方法を紹介します。

いじるcoreファイルは、このパス(Macだと、 /Users/自分のユーザーディレクトリ/.vscode/extensions/liximomo.sftp-1.12.9/node_modules/ssh2-streams/lib/sftp.js)のものです。

このjsファイルの、388行目の、

if (code === STATUS_CODE.OK) {

を、以下コードに変更してください。

if (code === STATUS_CODE.OK || code === STATUS_CODE.NO_SUCH_FILE) {

変更後、VSCodeを再起動 or Reload Windowすると、無事元通りにSFTP通信が行えるようになっていると思います。

Tags in this Post

Numbers
#VSCode 2

Tags in this Post

All your life with nothing but Happiness
2021 — Misprochef