since는 yarn berry workspace 플러그인입니다.
$ yarn plugin import https://raw.githubusercontent.com/toss/yarn-plugin-workspace-since/main/bundles/%40yarnpkg/plugin-workspace-since.jssince는 @yarn/plugin-workspace-tools에 의존합니다. 따라서 먼저 workspace-tools를 설치해야 합니다.
$ yarn plugin import https://raw.githubusercontent.com/toss/yarn-plugin-workspace-since/c9967e8349731e464813f54ca95c0614263f59a9/bundles/%40yarnpkg/plugin-workspace-since.js주어진 두 git revision 사이에 변경점이 있는 workspace에 대해서 주어진 명령어를 실행합니다. 변경점은 파생됩니다. "A" workspace에 의존성을 가진 "B" workspace가 있을때 "A", "B" 모두에 대해서 run이 실행됩니다.
변경된 workspace가 없다면 아무것도 실행하지 않습니다.
$ yarn workspaces since run <command> <from> [to]command: 실행할 명령어를 지정합니다.command를test로 지정한다면, 각 workspace 디렉토리에서yarn test를 실행합니다.package.json의scripts에 지정되지 않은 명령어도 실행합니다. 지정한 명령어가 존재하지 않는 경우, 무시합니다.from: 시작 리비전입니다.to: 끝 리비전입니다. 지정하지 않으면HEAD가 기본값입니다.
--jobs: 주어진 숫자만큼run을 병렬적으로 실행합니다. 지정하지 않으면1이 기본값입니다.--include: 변경된 workspace 중run을 실행할 workspace를 glob pattern으로 지정합니다. 지정하지 않으면 모든 workspace를 대상으로 합니다.--ignore: 변경사항이 발생해도 무시할 workspace를 glob pattern으로 지정합니다. 무시된 workspace의 변경점은 파생되지 않습니다.--ignore-errors:true로 지정하면run실행 중 에러가 발생했을 때에도 무시하고 실행을 계속합니다.
$ yarn workspaces since run test main develop$ yarn workspaces since run 'npm publish' $(git rev-parse HEAD~1)