-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Yarn Berry + Workspace 도입, 프론트엔드 패키지 모노레포 전환 (행록 서비스 + 디자인시스템 + 어드민 통합) #782
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
dladncks1217
added
🌏 Environment
🔨 Refactor
✨ Feature
FE-Service
행록 서비스 프론트엔드
FE-DesignSystem
행록 디자인시스템
FE-Admin
행록 어드민 프론트엔드
labels
Jan 22, 2024
로컬 cypress 테스트가 실패했습니다. 테스트 결과 자세히 보기 |
로컬 cypress 테스트가 실패했습니다. 테스트 결과 자세히 보기 |
로컬 cypress 테스트가 실패했습니다. 테스트 결과 자세히 보기 |
플젝 다시만드나요? |
dladncks1217
changed the title
프론트엔드 패키지 모노레포 전환
Yarn Berry 도입 및 프론트엔드 패키지 모노레포 전환 (행록 서비스 + 디자인시스템 + 어드민 통합)
Jan 22, 2024
어어 아닙니다 |
jjongwa
approved these changes
Jan 22, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
다시 만들어줘요
dladncks1217
changed the title
Yarn Berry 도입 및 프론트엔드 패키지 모노레포 전환 (행록 서비스 + 디자인시스템 + 어드민 통합)
Yarn Berry + Workspace 도입, 프론트엔드 패키지 모노레포 전환 (행록 서비스 + 디자인시스템 + 어드민 통합)
Jan 22, 2024
hgo641
pushed a commit
that referenced
this pull request
Apr 23, 2024
…합) (#782) * feature: 프론트엔드 패키지들(행록 서비스, 디자인시스템) 모노레포 초기 구축 * build: cypress e2e CI workflow_dispatch 추가 * build: cypress e2e CI workflow_dispatch 수정 * build: cypress ci yml 임시수정 * build: hanglog service cypress CI 파이프라인 수정 * refactor: 모노레포 패키지 구조 변경, workspace 내 typescript 버전문제 개선중 * fix: workspace에서 type을 찾지 못하는 문제 해결 * chore: .code-workspace 설정 추가 * refactor: type error 관련 코드 수정 * refactor: 디자인시스템 eslint 터지는 코드 개선 * refactor: 패키지 구조 변경에 의한 cypress ci 테스트코드 수정 * refactor: 패키지 구조 변경에 의한 chromatic ci yml 수정 * fix: ts-pattern 버전문제로 인한 문제 수정 * chore: 디자인시스템 ts-pattern 제거 * chore: 불필요한 ts-pattern 제거 * refactor: chromatic 관련 workspace명령어 제거 * Update README.md
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
🌏 Environment
FE-Admin
행록 어드민 프론트엔드
FE-DesignSystem
행록 디자인시스템
FE-Service
행록 서비스 프론트엔드
✨ Feature
🔨 Refactor
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📄 Summary
대공사 였습니다 허허 삽질하느라 좀 걸렸네요
yarn berry + workspace써서 pnp로 구축했는데 의존성이 참 많이 터지더군요...
언젠가 모노레포 또 구축할 일이 있다면 어지간해서는 pnpm 쓸 것 같습니다.
+ File changed 2194개인거는 PnP 도입해서 그런거라 정상적인 pr 맞습니다. 기존 코드들 수정은 거의 없었기에 피알 어케읽나 걱정 안하셔도 됩니다.
변경사항이 참 많습니다. 하나하나 적어볼게요
패키지들 추가 및 버전 변화
PnP때문에 버전관리 이슈가 조금 많았는데요, 개인적으로 연락해서 상관없는지 물어본것들도 좀 있지만, 버전 문제들 터질 우려가 조금 있기도 하고, 추가한것들도 몇개 더 있어서 여기에 쭉 쓰겠습니다.
프로젝트 구조
변경점
어드민 서비스 추가로 인해서 도입한것도 있긴 하지만,
가장 핵심적인 부분입니다. 이제 디자인시스템 배포 후 설치 후 사용 안해도 됨.
조금 불편해진 부분도 있을 수는 있지만, 이것만으로도 충분히 도입의 가치가 있다고 생각되더군요.
디자인시스템 빌드돌리고 그냥 쓰면 됩니다. 디자인시스템쪽 매핑 되어있어서 빌드돌리고 사용하면 바로 적용됨
npm 배포는 계속 별도로 하고싶으면 하면 똑같이 됩니다.
해야 하는 작업 수가 많이 줄었어요
원래 디자인시스템에 번들러로 rollup 도입하려 했었는데 당장은 아니지만 도입해도 사용하는 프로세스는 똑같을테니 상관 없지 않을까 싶습니다
사용 방법
pnp라서 세팅해야 할 게 조금 있습니다.
1. ZipFS 설치하기
Extensions 보면 ZipFS라고 있어요
어차피 다 vscode쓰니깐 그대로 익스텐션 받으면 됩니다.
2. workspace typescript 버전 세팅하기
위에 open workspace 누르면 워크스페이스가 켜지는데요,
들어가면 아래처럼 타입들이 다 터지는게 정상입니다.
여기서 cmd +shift + p 누르고 Typescript: Select Typescript Version을 치면 TS 버전을 선택할 수 있는데, 여기서 아래처럼 워크스페이스 버전으로 클릭해주시면 됩니다.
sdk파일 집어넣어서 아마 될거에요
2-1. 제대로 동작하지 않는다면?
monorepo root부분에 .code-workspace 코드에
"typescript.tsdk": "../../.yarn/sdks/typescript/lib",
로 잘 적혀있는지 확인해주세요.VSCode 문제인건지, 자꾸 지맘대로 얘를 수정하는 경우가 있더군요.
3. zero install에 대해
좀 골때리긴 한데
yarn
을 한번 터미널에 쳐 주기는 해야하더군요? install을 하는 것은 아니지만, resolution등의 과정이 필요해 해주긴 해야합니다.4. 프론트엔드 라벨
라벨 FE 만 있던거
FE-DesignSystem
,FE-Service
,FE=Admin
으로 분류했습니다.라벨 기반으로 github action CI 돌아가게 해뒀으니 피알 쓸 때 도메인에 맞게 라벨 넣으면 됩니다.
5. pnp 사용 시 prettier관련 VSCode 버전문제
prettier 쓸 때 formatOnSave 상황에서 제대로 돌아가지 않는 문제 때문에 삽질을 좀 많이 했는데, 버전업하니깐 잘 돌아가더군요.
저는 1.85.2 쓰고있습니다. 1.7x쓰고있을 때 안돼서 고생좀 했는데 잘 안되면 vscode 버전업 해보세요
🙋🏻 More
아직 작업 안된게 조금 있긴 한데 크리티컬한 이슈는 아닌지라 일단 피알 마무리하고 차차 고쳐나갈게여
이오가 어드민 백엔드 열심히 만들고 있길래 모노레포 전환하는거 더 끌기에는 조금 그런듯
이오햄이 프론트도 짜줄거니깐!?
생각나는대로 써봤는데 변경사항이 꽤 컸던지라 다 쓴건지 살짝 애매하긴합니다.
더 생각나면 추가하긴 할텐데, 보고 오동작하는거나 잘못된거 있으면 말해주세여
close #777