Skip to content

demo/with-cra 에서 yarn 빌드 오류 #191

Closed

Description

@hy57in

Issue description

demo/with-cra 폴더 내에서 개발서버를 띄우거나 빌드시 오류가 납니다ㅜ
demo/with-cra 폴더 내에서 yarn install 해도 중간에 오류가 뜹니다ㅜ

yarn.lock 지우고 다시 해봐도 안되네용

config에 오류가 있는듯한데 건들 수가 없어 도움을 요청ㅇ합니다!

Steps to reproduce the issue

  1. root에서 yarn install && yarn serve
  2. /demo/with-cra 에 들어간다
  3. yarn install
  4. yarn dev

What's the expected result?

  • yarn dev 시 개발서버 동작..

What's the actual result?

  • yarn install 하면
➤ YN0001: │ Error: @types/react-dom@file:../../node_modules/react-dom::locator=with-nextjs%40workspace%3A.: ENOENT: no such file or directory, lstat
  • yarn dev 또는 yarn build 하면
Internal Error: demo@workspace:.: This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile

image

Additional details

Activity

  1. self-assigned this
    on Sep 2, 2021
  2. greatSumini commented on Sep 2, 2021

    @greatSumini
    Member

    올려주신 에러는 RAP 패키지 관리자가 Yarn berry로 변경되면서 루트 경로의 node_modules가 사라져서 발생한 것 같습니다 ㅎㅎ..
    근데 react, react-dom을 따로 설치해서 해당 에러를 해결해봐도 serve중인 RAP의 dependency들 못 읽네요 ㅠㅠ node_modules의 느슨한 의존성 관리 덕분에 정상 작동하고 있던 것 같습니다 😭

    저희가 해볼 수 있는 조치들은 아래와 같이 있는듯한데.. 논의가 필요할 것 같아용

    1. RAP에서 Yarn berry를 제거하고 다시 node_modules를 사용한다.
    2. demo의 디펜던시들까지 아예 하나의 패키지로 관리한다.
    3. vercel/next.js examples처럼 demo 프로젝트들의 relative dependency들을 모두 제거해 RAP와 완전히 격리한다. (지금처럼 개발 모드 켜놓고 모니터링하는 용도로 사용할 수 없게 됨)
    4. yarn workspace를 도입한다. (workspace 도입하려면 RAP도 통째로 옮기는게 맞을듯한디.. 이건 좀 아닌둣합니다)

    개인적으로는 1번을 선택해 빠르게 문제 해결하고 신규 기능 추가에 집중하는 것도 좋을듯합니다 ㅎㅎ..

  3. hy57in commented on Sep 3, 2021

    @hy57in
    MemberAuthor

    올려주신 에러는 RAP 패키지 관리자가 Yarn berry로 변경되면서 루트 경로의 node_modules가 사라져서 발생한 것 같습니다 ㅎㅎ..
    근데 react, react-dom을 따로 설치해서 해당 에러를 해결해봐도 serve중인 RAP의 dependency들 못 읽네요 ㅠㅠ node_modules의 느슨한 의존성 관리 덕분에 정상 작동하고 있던 것 같습니다 😭

    저희가 해볼 수 있는 조치들은 아래와 같이 있는듯한데.. 논의가 필요할 것 같아용

    1. RAP에서 Yarn berry를 제거하고 다시 node_modules를 사용한다.
    2. demo의 디펜던시들까지 아예 하나의 패키지로 관리한다.
    3. vercel/next.js examples처럼 demo 프로젝트들의 relative dependency들을 모두 제거해 RAP와 완전히 격리한다. (지금처럼 개발 모드 켜놓고 모니터링하는 용도로 사용할 수 없게 됨)
    4. yarn workspace를 도입한다. (workspace 도입하려면 RAP도 통째로 옮기는게 맞을듯한디.. 이건 좀 아닌둣합니다)

    개인적으로는 1번을 선택해 빠르게 문제 해결하고 신규 기능 추가에 집중하는 것도 좋을듯합니다 ㅎㅎ..

    오호 yarn berry 제거하는게 쉽다면 되돌려도 좋을거같아요! 그런데 나중에 다시 yarn berry를 도입했을 때 결국 2,3,4 중 하나의 방법으로 문제를 해결해야하는거죠?

  4. jhlee910609 commented on Sep 3, 2021

    @jhlee910609
    Contributor

    @greatSumini 이상적인 건 4번인데 쉽게 될지는 미지수네요 ㅠㅠㅠ

  5. greatSumini commented on Sep 4, 2021

    @greatSumini
    Member

    @hy57in 네 그춍 근데 Yarn Berry가 꼭 필요하진 않을 수도 있을 것 같아여 배포가 잦지 않고 설치된 의존성이 적어 굳이..? 일수도 있을 것 같습니다!

  6. greatSumini commented on Sep 4, 2021

    @greatSumini
    Member

    @jhlee910609 저는 개발서버 테스트는 스토리북이나 E2E테스트로 해결하고 3번처럼 데모는 완전격리하는게 좋다고보긴하는디 환경 구성이 조금 어렵긴하져 ㅎ.ㅠ

  7. jhlee910609 commented on Sep 5, 2021

    @jhlee910609
    Contributor

    구글링 해도 yarn link 직접 해주 방법 외에는 잘 모르겠어서 몇 일 전에 yarn berry discussion에 문의했습니다. pnp mode에서 module linking 하는 방식이 있을까 해서요. 저는 해당 discussion 트래킹하고 있을게요.
    yarnpkg/berry#3379

  8. locked and limited conversation to collaborators on Sep 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions