Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Simultaneous builds are unreliable

未关闭
#1,089 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
42/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
javascript, nodejs, rollup, typescript
领域
build-system

调研方向

从 src/index.js 第 539 行附近开始,检查如何将缓存目录提供给 rollup-plugin-typescript2。在 CI 风格的设置中复现两个同时进行的 microbundle 构建,然后验证并发构建不再产生报告中的 ENOENT rename 错误,可以通过禁用缓存或分离缓存位置来实现。

由索引模型根据 Issue 内容生成。

描述

Hi, foremost, thank you for this tool, it helped me quite a lot.

I use it in a CI pipeline, and it builds two versions of the same script (with some modules being replaced).
When I tried to optimize the duration it takes, I changed to building the two versions simultaneously, that actually does save time. But once every 15 runs I get this error:

Error: ENOENT: no such file or directory, rename './node_modules/.cache/.rts2_cache_umd/rpt2_4ac624c30e398d7abd448e108f7ef395666c7280/code/cache_' -> './node_modules/.cache/.rts2_cache_umd/rpt2_4ac624c30e398d7abd448e108f7ef395666c7280/code/cache'
Error: ENOENT: no such file or directory, rename './node_modules/.cache/.rts2_cache_umd/rpt2_4ac624c30e398d7abd448e108f7ef395666c7280/code/cache_' -> './node_modules/.cache/.rts2_cache_umd/rpt2_4ac624c30e398d7abd448e108f7ef395666c7280/code/cache'
    at Object.renameSync (node:fs:1026:3)
    at RollingCache.roll (/---/scripts/node_modules/rollup-plugin-typescript2/dist/rollup-plugin-typescript2.cjs.js:29229:26)

I tracked it down to this line
which explains what happens. When more than one microbundle script is running, it instructs typescript to use the same cache directory and most likely starts to mess up or rename files that the other version already deleted.

My probosals:

  • implement a flag to disable this type of caching, or use a random string for the cacheRoot
  • generate a simple hash of the arguments provided and use that in combination of cacheRoot, this will prevent two scripts doing different jobs of interfering with each other

Please let me know if you would accept a PR for either of those implementations

主要语言
JavaScript
星标
8.1k
派生
358
PR 合并指标
30 天内没有已合并 PR

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

developit/microbundle 的其他 Issue

查看 developit/microbundle 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。