文章

一个意料之外的bug

在刚刚的commit Website Upgrade (3rd) 中网页出现了无明显提示的错误布局:

出错的页面 出错的页面

在我回退commit并将其一个一个重新提交后发现bug出现在几乎不会被察觉的地方:在commit前\assets\css\jekyll-theme-chirpy.scss的代码片段为

1
2
3
4
5
@use 'main
{%- if jekyll.environment == 'production' -%}
  .bundle
{%- endif -%}
';

但在保存提交后,代码变成了

1
2
3
4
5
@use 'main
{%- if jekyll.environment == ' production ' -%}
  .bundle
{%- endif -%}
';

这是一个极其难以察觉的错误. 之所以发生是因为在VSCode保存前我(也是默认)的美化插件Prettier Code会自动格式化一次代码,在插件的识别中,'main== '被看作一个字符串,因此美化将字符串与后面的”变量”production之间加了一个空格,导致调用错误,从而网页布局错误(且没有任何报错).

本文由作者按照 CC BY 4.0 进行授权