yarn-plugin-workspace-since
yarn-plugin-workspace-since copied to clipboard
fix: execa의 stderr 결과도 전달받도록 수정
문제
-
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