bin/lint 更新导致非捆绑插件的 lint 流程中断

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。但这显然耗时更长。

是否应该以不同的方式来完成这项工作?

感谢提交报告 @klappradla。这应该能修复问题:

谢谢!

我尝试了您修复中的分支。不过它对我而言只能部分生效,因为在 template-lint 之后便停止了,没有运行后续的检查。

我怀疑它确实在 ember-template-lint 之后运行了 stylelint,但由于输出为空,这一点并不明显。我刚提交了一个新 commit,添加了简单的进度输出和最终摘要。

我试过了你更新的分支,但我觉得问题出在其他地方。现在它确实会打印摘要,这很好,但我觉得它并没有检查正确的文件😂

如果与 146fb61e104e 进行比较,它无法检测出我在 .scss.js 文件中插入的任何代码规范违规。

我在测试中尝试在 SCSS 和 JS 文件中添加违规项,看起来效果不错。能否请你运行 bin/lint --verbose plugins/my-custom-plugin,并查看输出中是否正确列出了这些文件?

关于冗长输出的观点很好!

是的,文件路径没问题,我也可以让它报告 :tada:。但是,当我传入 --fix 时,它却静默地没有任何反应。那里的 API 你改了吗?

哦…… :facepalm:

我又提交了一个新提交。您介意再试一次吗?

太好了!现在对我来说一切正常 :tada:

抱歉回复晚了——之前去处理非电脑相关的工作了。

太好了,感谢您的帮助!我已经合并了该 PR :rocket: