Skip to main content

Command Palette

Search for a command to run...

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

Updated
1 min read

문제를 만나다

  • 개인 프로젝트를 진행할 때 기능을 병렬로 구현하기 위해서 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 스크립트가 자동 실행되면서 환경변수가 자동으로 복사되어서 정말 편리하다 !

참고 링크

https://docs.conductor.build/core/scripts

More from this blog

[ts-challenges] Includes / Push / Unshift / Parameters

Includes 설계 의도 튜플 타입 T를 첫 번째 요소인 Head와 나머지 요소들인 Tail로 분리해서 추론한다. Head가 제네릭 U 타입과 동일하지 않으면 Includes 타입을 Tail에 대해 재귀적으로 다시 실행하면서 다음 요소 검사하기 boolean 타입의 경우, true와 false이 모두 할당가능하니까 엄격하게 동등한지 비교하기 위해서 Equal 헬퍼함수 사용 코드 type Equal<X, Y> = (<T>() => ...

May 23, 20253 min read

Untitled Publication

37 posts