Conductor 워크스페이스마다 .env 파일 자동 복사하기

문제를 만나다
개인 프로젝트를 진행할 때 기능을 병렬로 구현하기 위해서 Conductor를 사용하고 있다. 여러 개의 워크 스페이스를 새로 만들 때마다 환경변수를 매번 수동 복사해야 하는 게 매우 귀찮았다.
워크트리 개념이 익숙하지 않아서 처음에는 워크트리 생성 시 모든 파일을 다 가져오는 줄 알았다. 워크트리의 동작 방식을 찾아보니,
git에 저장된 파일만 생성된다는 걸 새로 알게 되었다.도움 받은 블로그 글 링크 : Git에서 다수의 워킹 디렉토리를 관리하는 worktree
고민한 부분 : 심볼릭 링크를 써야할까
개인 프로젝트를 자유도 높게 만들다 보니 변경사항을 한 번에 관리하고 싶다는 생각이 들었다. ‘env가 변동될 텐데, 그때마다 여러 워크 스페이스의 환경변수를 관리하는 게 중복작업이 아닐까? 바꿨다는 사실을 까먹을 수 있지 않을까?’라는 생각이 들었다. 그래서 ‘신경안썼으면 좋겠다!’라는 마음에 원본 env파일을 참조하는 심볼릭 링크를 써야겠다고 생각했다.
그런데 워크트리를 사용하는 목적을 다시 생각해보니 독립된 환경을 보장하기 위한 것이고, 그 이유는 각 워크 스페이스의 변경사항이 서로 영향을 주지 않기 위한거니까 그렇다면 매번 새로운 파일로 복사하는 게 더 안전하다는 생각이 들었다.
해결 방식 : 워크트리 만들때마다 환경변수 자동 복사해오기
{
"scripts": {
"setup": "npm install; cp $CONDUCTOR_ROOT_PATH/.env .env",
"run": "npm run dev"
}
}
워크스페이스 루트에 conductor.json 파일을 생성한 뒤 환경변수 복사해오는 명령어(cp $CONDUCTOR_ROOT_PATH/.env .env)를 적어주면 된다.
Conductor의 경우 새로운 워크스페이스가 생성되면 setup 스크립트가 자동 실행되면서 환경변수가 자동으로 복사되어서 정말 편리하다 !