news 2026/9/15 11:05:53

al-folio 提交代码后 Prettier 格式检查工作流失败怎么处理?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
al-folio 提交代码后 Prettier 格式检查工作流失败怎么处理?

al-folio 提交代码后 Prettier 格式检查工作流失败怎么处理?

【免费下载链接】al-folioA beautiful, simple, clean, and responsive Jekyll theme for academics项目地址: https://gitcode.com/GitHub_Trending/al/al-folio

使用 al-folio(一个面向学术个人主页的 Jekyll 主题)时,你本地的站点构建和预览一切正常,但创建 commit 提交或发起 PR 后,GitHub Actions 里的 Prettier 格式检查失败,报错形如prettier code formatter workflow run failed for main branch。这类失败和你的代码逻辑无关,而是提交的代码没有通过 Prettier 格式化检查。本文按“看失败 diff → 本地修复 → 本地验证 → 重新提交”的顺序,说明如何处理并在自己的仓库中关闭这项检查。

为什么工作流会失败

自 PR #2048 起,al-folio 使用 Prettier 对仓库代码做格式约束,所有新提交的代码必须符合其规范(见 docs/CONTRIBUTING.md)。

检查由 Prettier code formatter 工作流 执行:它在向master/main分支的pushpull_request事件上触发,在 ubuntu-latest 上安装prettier@shopify/prettier-plugin-liquid后执行npx prettier . --check,对整个仓库做格式检查。检查使用的规则来自仓库根目录的 .prettierrc:

plugins: ["@shopify/prettier-plugin-liquid"] printWidth: 150 trailingComma: "es5"

即启用了 Shopify 的 Liquid 模板插件(al-folio 大量使用 Liquid 模板),行宽 150。.prettierignore 列出的文件不参与检查,例如**/*.min.js**/*.min.csslighthouse_results/**_data/citations.yml等。

所以只要推送的文件(包括.md、Liquid 模板、.yml等)与这套配置不一致,--check就会失败,而本地“能跑”并不等于“格式合规”。

先看失败 diff,确认需要改哪里

检查失败后,工作流会自动生成一份 diff,不需要猜哪里有问题:

  1. 失败时先运行npx prettier . --write把仓库文件按配置改写;
  2. git diff -- . ':(exclude)package-lock.json' ':(exclude)package.json'生成diff.txt
  3. diff2html-cli生成diff.html,并上传为名为HTML Diff的 artifact,保留 7 天(retention-days: 7);
  4. 如果触发事件是pull_request,工作流还会派发prettier-failed-on-pr事件,由 prettier-comment-on-pr.yml 在 PR 上自动评论,附带指向失败 run 和 diff 文件的链接。

操作路径:打开失败的 Prettier action run,下载HTML Diffartifact(或直接在 PR 里看自动评论),diff 中列出的就是需要修改的具体位置。注意 artifact 只保留 7 天,过期后需要在本地重新跑一遍下面的修复流程。

本地修复格式

docs/FAQ.md 给出了三条路径,按需选择:

手动运行 Prettier(最直接的修复方式)

如果本机没有 Docker 环境,先安装 Node(latest version),FAQ 建议通过 nvm 安装 Node 管理器和 Node。然后在项目目录内安装 Prettier:

npm install prettier

或者全局安装:

npm install -g prettier

安装后对当前目录执行格式修复(--write会直接改写不符合格式的文件):

npx prettier . --write

仓库 package.json 的 devDependencies 中锁定的版本是prettier: ^3.8.0@shopify/prettier-plugin-liquid: ^1.10.0。工作流本身安装的是prettier@shopify/prettier-plugin-liquid的最新版本;如果想让本地环境与仓库的依赖集合一致,用npm cipackage-lock.json安装后再检查(见下文验证一节)。

Docker 开发容器

如果你按 docs/INSTALL.md 中 Local setup with development containers 一节使用 Docker + 开发容器本地运行,开发容器内已经自带 Prettier,直接执行npx prettier . --write即可,无需额外安装。

IDE 集成

如果你不使用 Docker,也可以把 Prettier 集成到你常用的 IDE(通过 Prettier 编辑器扩展),让编辑时自动保持格式合规。FAQ 只说明了这条路径的存在,具体扩展按你所用 IDE 选择。

提交前验证

按 docs/CONTRIBUTING.md 的 Local Validation 一节,在项目根目录执行:

npm ci npm run lint:prettier

其中npm ci会按package-lock.json安装包括 Prettier 和 Liquid 插件在内的全部 devDependencies;lint:prettier在 package.json 中定义为prettier . --check,与工作流执行的检查命令一致。本地检查不再报格式问题后,把修复提交推送回分支,工作流会重新触发,观察 "Prettier Check" 这一步通过即表示该问题已解决。

不想启用这项检查时

如果你维护的是基于 al-folio 的站点仓库(而非主题本身),FAQ 提供了关闭方式:删除你仓库中的.github/workflows/prettier.yml文件。副作用是从此以后该仓库的 push / PR 不再执行 Prettier 格式检查,团队内代码格式将不再有 CI 约束,请自行评估。

另外注意一个常见混淆:仓库里还有一个Prettify gh-pages工作流(prettier-html.yml),它只在手动workflow_dispatch时运行、只格式化gh-pages分支的 HTML 文件,与 push 后自动触发的检查失败无关,不要把它当作失败来源去排查。

【免费下载链接】al-folioA beautiful, simple, clean, and responsive Jekyll theme for academics项目地址: https://gitcode.com/GitHub_Trending/al/al-folio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/15 11:04:37

OpenRAG 加密实现剖析:OAuth凭证安全存储的完整方案

OpenRAG 加密实现剖析:OAuth凭证安全存储的完整方案 【免费下载链接】openrag OpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch. 项目地址: https://gitcode.com/GitHub_Trend…

作者头像 李华
网站建设 2026/9/15 11:04:31

Umi 开启 MFSU 后浏览器出现 React 多实例问题怎么解决

Umi 开启 MFSU 后浏览器出现 React 多实例问题怎么解决 【免费下载链接】umi A framework in react community ✨ 项目地址: https://gitcode.com/GitHub_Trending/um/umi 在 Umi 项目开发中,如果浏览器控制台报出 React 多实例错误(React 的代码…

作者头像 李华
网站建设 2026/9/15 11:03:13

JuiceFS 如何用 fio 跑顺序读写基准测试并解读结果

JuiceFS 如何用 fio 跑顺序读写基准测试并解读结果 【免费下载链接】juicefs JuiceFS is a distributed POSIX file system built on top of Redis and S3. 项目地址: https://gitcode.com/GitHub_Trending/ju/juicefs 已经挂载好的 JuiceFS 文件系统能跑多快的顺序读写…

作者头像 李华
网站建设 2026/9/15 11:02:56

Python开发个人日程管理系统的设计与实现

1. 项目概述"Python个人日程计划管理系统"是一个基于Python开发的轻量级个人时间管理工具。作为一名长期使用Python进行自动化开发的程序员,我发现在日常工作和生活中,市面上大多数日程管理软件要么功能过于复杂,要么缺乏灵活性。于…

作者头像 李华
网站建设 2026/9/15 11:02:39

抖音批量下载工具:一键无水印下载的完整指南

抖音批量下载工具:一键无水印下载的完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批…

作者头像 李华