vscode-extension cli에서 설치

Written by 성기동 on
vscode-extension cli에서 설치

1. CLI 환경 구성

  • 해당 URL을 통해서 CLI 환경부터 구성을 하도록 하자.
  • CLI 환경 구성

2. cli환경에서의 기본적인 설치방법

위 extension 을 설치한다고 했을 때 아래와 같이 명령어를 입력할 수 있다.

code --install-extension ms-vscode.azurecli

3. 실제 활용방법

일단 vscode-extension.txt 에는 아래와 같은 내용이 들어있다고 가정하자

ms-vscode.azurecli
formulahendry.auto-close-tag
naumovs.color-highlight
Name: Color Highlight

xargs
표준 출력의 내용을 다음 명령어의 인자로 전달한다.
여러가지 옵션이 있지만 여기서는 L(line) 옵션을 사용했다.
출력 내용이 여러줄이면 1줄씩 인자로 전달하겠다는 내용이다.

cat vscode-extensions.txt | xargs -L1 code --install-extension

# 실제 실행될때
code --install-extension ms-vscode.azurecli;
code --install-extension formulahendry.auto-close-tag;
# .... 생략

4. extension.txt 만들기

현재 내가 설치하고 있는 extension id를 일일히 찾아서 기입하는 일은 번거롭다. 깔려있는 모든 extension id는 어떻게 추출할 수 있을까? 필자의 경우 아래 명령어를 통해 vscode 폴더를 찾았다.

.vscode/extensions 폴더 찾기

find ~ -name ".vscode" -type d | grep -i seong-gidong/.vscode

# 출력 결과
/Users/godot/.vscode
/Users/godot/.vscode/extensions/steoates.autoimport-1.5.3/.vscode
/Users/godot/.vscode/extensions/ritwickdey.liveserver-5.6.1/node_modules/bcryptjs/.vscode
/Users/godot/.vscode/extensions/tht13.python-0.2.3/.vscode
/Users/godot/.vscode/extensions/tht13.python-0.2.3/src/server/.vscode
/Users/godot/.vscode/extensions/msjsdiag.debugger-for-chrome-4.12.3/node_modules/vscode-uri/.vscode
/Users/godot/.vscode/extensions/ms-vscode.vscode-typescript-tslint-plugin-1.2.3/node_modules/vscode-uri/.vscode

.vsocde 내부에 extensions 폴더에 현재 깔려있는 extension 폴더들이 존재한다. 때문에 그 폴더로 이동했다.

.vscode/extensions 폴더로 이동하기

cd /Users/seong-gidong/.vscode/extensions

깔려있는 extension 확인하기

ls -l
# 출력 결과
drwxr-xr-x  10 seong-gidong  staff   320  7 29 09:42 aaron-bond.better-comments-2.1.0
drwxr-xr-x  10 seong-gidong  staff   320  4 14  2020 abusaidm.html-snippets-0.2.1
drwxr-xr-x  12 seong-gidong  staff   384 12  4 10:40 alexcvzz.vscode-sqlite-0.10.1
drwxr-xr-x  16 seong-gidong  staff   512 12 12 09:49 batisteo.vscode-django-1.0.1

출력결과 저장

아래 명령어를 통해 extension.txt를 만들 수 있다. 해당 extensions 폴더에서 필요한 네이밍만 추출하면 extensions.txt 가 완성된다.

(리눅스 명령어를 통해 불필요한 정보를 제외하고 필요한 네이밍 ex) steoates.autoimport 만 추출이 가능할 것이다. 다만 현재의 필자는 에디터를 통해 불필요한 권한, 유저정보, 시간 등의 데이터를 삭제하기로 했다. )

ls -l > extensions.txt