【VSCode】Macのユーザ名変更後に拡張機能が表示されない or インストール出来ない時の対処法

原因

Macのユーザ名を変更したことでユーザのディレクトリ名(/Users/ユーザ名)も変更となり、その結果vscode拡張機能のインストール先情報が保存されるextensions.jsonファイルと実際インストール先のパス内容にずれが生じ、正常に動作しなくなった様子

具体例

Macのユーザ名変更前のextensions.jsonを以下とする

[
    {
        "identifier": {
            "id": "abusaidm.html-snippets",
            "uuid": "XXXX"
        },
        "version": "0.2.1",
        "location": {
            "$mid": 1,
            "fsPath": "/Users/旧ユーザ名/.vscode/extensions/abusaidm.html-snippets-0.2.1",
            "path": "/Users/旧ユーザ名/.vscode/extensions/abusaidm.html-snippets-0.2.1",
            "scheme": "file"
        },
        "metadata": {
            "id": "XXXX",
            "publisherId": "XXXX",
            "publisherDisplayName": "Mohamed Abusaid",
            "targetPlatform": "undefined",
            "updated": false,
            "isPreReleaseVersion": false,
            "preRelease": false,
            "installedTimestamp": 1655852273734
        }
    },
    (中略)
]

この状態でMacのユーザ名が変更されるとextensions.jsonの内容は変わらないが、拡張機能が実際にインストールされているフォルダが

/Users/新ユーザ名/.vscode/extensions/abusaidm.html-snippets-0.2.1

となり、

/Users/旧ユーザ名/.vscode/extensions/abusaidm.html-snippets-0.2.1

には拡張機能が保存されていないことになる。

すると、
実際にインストールされているはずの拡張機能がVSCode上で見えなくなったり、再度同じ拡張機能をインストールしようとしてもすでにextensions.jsonに記載されている拡張機能なので重複などで正常に動作しなくなる様子

対処法

/Users/ユーザ名/.vscode/extensions/extensions.json

内の各拡張機能のlocationのパスを新しいパスに変更する

先ほどの例で言うと

  "location": {
      "$mid": 1,
-            "fsPath": "/Users/旧ユーザ名/.vscode/extensions/abusaidm.html-snippets-0.2.1",
-            "path": "/Users/旧ユーザ名/.vscode/extensions/abusaidm.html-snippets-0.2.1",
+            "fsPath": "/Users/新ユーザ名/.vscode/extensions/abusaidm.html-snippets-0.2.1",
+            "path": "/Users/新ユーザ名/.vscode/extensions/abusaidm.html-snippets-0.2.1",
      "scheme": "file"
  },

に変更するといい

Leave a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Scroll to Top