Discourse main 分支最近的一次变更 (https://github.com/discourse/discourse/commit/e84d7c9f26ed) 导致我们用于检查自定义插件的代码规范流程失效。
该 PR/提交的主题是:
DEV: 更新
bin/lint以正确支持非捆绑插件
因此我在想,我们是否在 linting 工作流中完全做错了(cc @david)。
我如何进行 linting
我之前使用 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 在根目录进行全局 linting。但这显然耗时更长。
是否应该以不同的方式来完成这项工作?