-
-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: disable spinner in production mode #195
Conversation
✅ Successfully deployed to Netlify
|
By the way: 推送到 netlify 时候或许可以指定一个 alias,例如 deploy-preview-${pr_num}-${platform} ,这样每次 PR 更新后重新生成的链接就是一样的了(观感上或许会好一些?区分先前的话可以在 comment 里加上 hash 或者 time) |
这没有什么观感上的问题吧? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这个修复太暴力了,相当于是直接删掉了这个功能,我觉得不太行。
应该不存在缓存问题吧,VitPress 生成的文件都是带有 hash 的,内容变化会导致 hash 变化,然后会重新加载(我也不确定)。
dev 下仍是存在的, build 时,本就有 |
事实上我个人主观看来,dev 反而是最不需要 spinner 的...
我觉得是两个事情。
|
如果是 VitePress + PWA 或者纯 PWA 呢?这个时候要面对的缓存就不是很好处理了。 |
我对 Vite 和 Rollup 不是很了解,事实上,这是我第一次接触和修改 Vite 插件。以下内容可能有较大的理解错误:
重在一起不是大问题,最多不好看,现在是,windows 上,build 会持续这个状态不能退出,必须 ctrl+c: 但很奇怪,CI 上是正常结束的。
我理解的是,多个插件的 buildStart 是并行的,而不是 buildStart 与 build 是并行的,所以修改这个顺序似乎是无效的
VitePress 不是一个 Vite 插件,它在构建时
不是很清除这里面的一些深层次问题,可能理解有错误。 |
这是 Windows 特有的 Bug 吗?我在 macOS 也无法复现这样的问题。
对的,它不是 Vite 插件,它是生成 Vite dev 和 Vite build 的外部守护进程 CLI。但这只是 cli 的部分的能力,剩下的,它还是实现了很多插件和自动化能力去进行配置,你可以理解为是一系列用户构建文档页面的插件合集。
对,大概是对的,很感谢你花时间去看代码。 |
要不要这样呢... 如果临时替换掉是可以修复的,我们可以先做一个 hotfix,把 ora 拿掉,就简单打印一下带颜色的 modulePrefix + 步骤,这样也不影响大家使用,也比较好实现,然后我们可以慢慢一起研究这个问题。 |
我测试了一下,可以把 isSilent (禁用所有输出,包括 spinner动画 和 text)改为 isEnabled(仅禁用 spinner动画,正常打印 text),这样既可以满足需求(既打印插件信息,也不影响正常退出): 事实上,CI 中 window 可以正常退出可能也是在 ci 环境 isEnabled 默认是禁用的:https://github.com/sindresorhus/ora?tab=readme-ov-file#isenabled |
涉及插件:git-changelog、ThumbnailHashImages
修复在 build 结束后插件的 spinner 还在转动,build 进程没有退出的问题。ref: #191 (comment)
before:
after:
VitePress 在 build 时,为
building client + server bundles...
和rendering pages...
分别启动了一个 ora 实例,插件启动的 ora 实例在building client + server bundles...
这一步结束前,相当于 build 时,同时启动了两个 spinner 。而 ora 尚不支持同时启动两个 spinner :sindresorhus/ora#116 。
因此我们需要在 build 时禁用插件的 spinner。
其他替代方案: