DevGang
Авторизоваться

Массовая установка расширений VS Code

Если вы читаете это, вы, вероятно, уже знаете, что такое VS Code и расширения VS Code. Обычный способ установки расширений - через интерфейс VS Code. Это действительно просто и интуитивно понятно. Однако каждое расширение необходимо устанавливать одно за другим.

Это здорово, если вам нужно установить одно расширение одновременно, что обычно и происходит, но что, если вам нужно установить 20 или более расширений? Это может занять много времени.

Вы можете задаться вопросом, зачем мне вообще понадобилось устанавливать 20 или более расширений одновременно? Давайте ответим на этот вопрос в следующем разделе.

Причина

Недавно нам нужно было настроить новую рабочую среду и в основном скопировать все, что у нас уже есть на старой машине, на новую.

Для некоторых это может быть весело и интересно. Это также дает вам возможность внести некоторые изменения в вашу настройку, которые вы не хотели делать раньше. Но когда вы делаете это часто или когда вы довольны своей текущей настройкой, повторять это с нуля может быть действительно утомительно.

В любом случае, в конце концов, нам нужно было настроить VS Code так, чтобы он был точно таким же, как на старой машине. Однако мы заметили, что нам не удалось установить расширения все сразу. Поскольку у нас есть более 20 расширений, которые нам нужно было установить, мы не хотели делать это вручную, одно за другим.

Скрипт массовой установки

Мы решили создать скрипт, который может автоматизировать процесс установки расширений. Для нас было бы достаточно просмотреть список расширений и установить их.

Мы потратили некоторое время, опробовав команду code и возможные варианты. К счастью, можно использовать команду code --list-extensions для перечисления всех установленных расширений, а также code --install-extension <extension_id> для установки расширения.

Наконец, я решил сделать его немного более надежным и добавил немного протоколирования, чтобы было легко видеть, что делает скрипт. Исходный код доступен здесь.

Применение

Сначала вам нужно подготовить текстовый файл, который будет использоваться в качестве входных данных для скрипта. Этот файл должен содержать список всех расширений VS Code, по одному на строку. Вот пример того, как должно выглядеть содержимое файла.

...
akamud.vscode-theme-onedark
akamud.vscode-theme-onelight
dbaeumer.vscode-eslint
eamodio.gitlens
esbenp.prettier-vscode
formulahendry.auto-rename-tag
mikestead.dotenv
...

Каждое расширение должно быть в формате <publisher>.<name>. Убедитесь, что файл правильно отформатирован и что в файле нет лишних пробелов или пустых строк.

В качестве альтернативы вы можете использовать команду code для извлечения списка расширений из вашей текущей установки VS Code.

code --list-extensions > extensions-list.txt

Когда команда будет выполнена, она сгенерирует список всех установленных расширений и сохранит их в extensions-list.txt файл. Вы можете изменить имя файла в команде, если хотите.

Запуск скрипта

Следующим шагом будет запуск скрипта и использование ранее созданного файла в качестве входных данных. Все это может быть сделано всего одной командой, подобной этой.

curl -fsSL https://raw.githubusercontent.com/rmmgc/vscode-extensions-bulk-install/main/bulk-install.sh | sh -s <path_to_input_file>
Для правильной работы скрипта необходимо установить VS Code и экспортировать команду code по PATH.

Когда команда будет выполнена, она получит текстовое содержимое скрипта из URL-адреса и передаст выходные данные команде sh. Сам файл сценария не будет сохранен на вашем компьютере. Кроме того, путь к входному файлу передается скрипту в качестве аргумента.

Обязательно замените path_to_input_file путем к входному файлу, который имеет список расширений.

После выполнения вы должны увидеть подробный журнал в терминале. Это может выглядеть примерно так.

...

🔧 Working on dbaeumer.vscode-eslint extension.
✅ Extension already installed.
Skipping further steps.

🔧 Working on formulahendry.auto-rename-tag extension.
Running: code --install-extension formulahendry.auto-rename-tag.
Installing extensions...
Installing extension 'formulahendry.auto-rename-tag'...
(node:93018) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `Electron --trace-deprecation ...` to show where the warning was created)
Extension 'formulahendry.auto-rename-tag' v0.1.10 was successfully installed.
✅ Extension installed successfully.

🔧 Working on mikestead.dotenv extension.
✅ Extension already installed.
Skipping further steps.

💡 Check the logs above for detailed report.
🎉 Successfully finished.

Все отсутствующие расширения должны быть установлены. В случае, если некоторые расширения уже были установлены до запуска скрипта, они будут пропущены.

Стало скучно всегда устанавливать расширения VS Code при настройке новой рабочей среды. Вот почему мы решили создать и поделиться скриптом, который может помочь немного ускорить этот процесс.

#Bash
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу