Существует ли путь без роуминга для расширений VSCode для хранения зависящих от платформы двоичных данных? - PullRequest
2 голосов
/ 14 января 2020

Расширение My Visual Studio Code опирается на двоичный файл, зависящий от платформы. В настоящее время пользователи должны вручную установить его и настроить местоположение в своих настройках; Я хотел бы упростить работу пользователей, загрузив расширение и кэшировав этот двоичный файл.

Из документации API я определил 3 места для выбора кеша:

  • context.globalStoragePath: почти идеально, но на Windows он находится под профилем "Роуминг" (в ожидании миграция на локальный профиль ), поэтому вряд ли подходит для бинарного файла, зависящего от платформы ~ 30 МБ
  • context.storagePath: указанная выше рабочая область c версия выше (также в профиле "Роуминг")
  • context.extensionPath: не сохраняется между обновлениями расширения

Другие варианты, которые я рассматриваю:

  • Каталог сестры context.extensionPath, например, ${context.extensionPath}/../my-extension-dependencies - который выглядит некрасиво и может конфликтовать с другими расширениями
  • Каталог брата каталога .vscode, например, ${HOME}/.my-extension/dependencies - и здесь, хитрость заключается в том, чтобы надежно найти доступный для записи каталог
...