최근 Discourse의 main 브랜치에 적용된 변경 사항(https://github.com/discourse/discourse/commit/e84d7c9f26ed)으로 인해 우리가 작업 중인 커스텀 플러그인을 린트하는 방식이 깨졌습니다.
해당 PR/커밋의 제목은 다음과 같습니다.
DEV:
bin/lint가 번들링되지 않은 플러그인에서도 올바르게 작동하도록 업데이트
그래서 우리의 린팅 워크플로우에 뭔가 완전히 잘못된 점이 있는 건지 궁금합니다. (cc @david)
제 린트 실행 방식
bin/lint를 사용하던 방식은 Discourse 루트 디렉터리에서 실행하고, 플러그인 디렉터리 내의 내 플러그인을 가리키도록 하는 것이었습니다:
bin/lint --fix plugins/my-custom-plugin
위에서 언급한 커밋 이후로 이 방식이 동작하지 않게 되었습니다. pnpm이 플러그인 디렉터리 내에서 실행되고 있다는 오류를 표시한 후, 더 이상 파일을 찾을 수 없게 됩니다. 오류 출력 중 한 예시는 다음과 같습니다:
> pnpm was run inside a plugin directory. Re-executing with --ignore-workspace...
NoFilesFoundError: No files matching the pattern "plugins/zlb-community/assets/stylesheets/common/atoms/category-button.scss, plugins/zlb-community/assets/stylesheets/common/atoms/category-icon.scss, plugins/zlb-community/assets/stylesheets/common/atoms/icon-info.scss, plugins/zlb-community/assets/stylesheets/common/atoms/user-pill.scss, plugins/zlb-community/assets/stylesheets/common/base/grid.scss, plugins/zlb-community/assets/stylesheets/common/base/normalize.scss, plugins/zlb-community/assets/stylesheets/common/base/rich-text.scss, plugins/zlb-community/assets/stylesheets/common/base/stack.scss, plugins/zlb-community/assets/stylesheets/common/index.scss, plugins/zlb-community/assets/stylesheets/common/molecules/card.scss, plugins/zlb-community/assets/stylesheets/common/molecules/expander.scss, plugins/zlb-community/assets/stylesheets/common/molecules/header.scss, plugins/zlb-community/assets/stylesheets/common/molecules/user-pill-list.scss, plugins/zlb-community/assets/stylesheets/common/organisms/category-header.scss, plugins/zlb-community/assets/stylesheets/common/templates/lobby.scss, plugins/zlb-community/assets/stylesheets/community-sidebar.scss, plugins/zlb-community/assets/stylesheets/user_home.scss, plugins/zlb-community/assets/stylesheets/common/atoms/badge.scss" were found.
at standalone (file:///Users/max/code/bitcrowd/zlb/discourse/plugins/zlb-community/node_modules/.pnpm/stylelint@17.5.0_typescript@5.9.3/node_modules/stylelint/lib/standalone.mjs:293:43)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
이전에는 완벽하게 잘 작동했습니다. (변경 사항 이전 커밋으로 돌아가는 것 외에는…) 이제 루트에서 bin/lint로만 전역 린트를 실행할 수 있습니다. 하지만 당연히 훨씬 더 오래 걸립니다.
이것이 다른 방식으로 수행되어야 하나요?