yarn-plugin-workspace-since icon indicating copy to clipboard operation
yarn-plugin-workspace-since copied to clipboard

fix: execa의 stderr 결과도 전달받도록 수정

Open apple12347678 opened this issue 3 years ago • 0 comments

문제

  • execa.command로 실행된 child process의 값들 중 stdout, stderr는 string | buffer인데, 만약 1. execa option의 buffer: true이고 2. 해당 buffer에 값이 존재하는 경우, 해당 값을 읽기 전까지 child process promise는 resolve되지 않습니다.
  • 만약 로컬에서 yarn workspaces since run 커맨드를 실행하면, child process의 stderr는 콘솔 창으로 잘 빠져나가기 때문에, 프로세스가 종료된 시점에 stderr buffer에 남아있는 값이 없으므로 execa promise는 잘 resolve 됩니다.
  • 그런데 CI에서 프로세스가 실행된다면 child process의 stderr를 consume해줄 곳이 없으므로 stderr buffer에 값이 쌓이고, 현재는 이 값을 읽지 않고 있기 때문에 promise가 resolve되지 않습니다.

stderr 값도 읽어오는 것으로 해당 문제를 해결합니다.

Reference

  • https://www.npmjs.com/package/execa
  • https://tossteam.slack.com/archives/C0127F6SYEB/p1640163482141500

apple12347678 avatar Dec 22 '21 10:12 apple12347678