Simultaneous builds are unreliable
还没有人认领这个 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
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
developit/microbundle 的其他 Issue
-
CSS
难度 2/5 1-3 小时 新手友好度 68/100
developit/microbundle#1002 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
developit/microbundle#789 · 1 条评论 ·
-
难度 3/5 1-2 天 新手友好度 55/100
developit/microbundle#1100 · 4 条评论 ·
-
难度 4/5 3-5 天 新手友好度 35/100
developit/microbundle#1094 · 1 条评论 ·
-
难度 3/5 1-2 天 新手友好度 45/100
developit/microbundle#1093 · 3 条评论 · 1 个 reaction ·
查看 developit/microbundle 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
-
难度 2/5 1-3 小时 新手友好度 75/100
docToolchain/docToolchain#1705 ·
-
Timezone select lists one option per character; duplicate "Failed" reason; shared tracker popover id 未关闭bug
难度 2/5 1-3 小时 新手友好度 75/100
nightscout/nocturne#1414 ·
-
bug v2
难度 2/5 1-3 小时 新手友好度 75/100
modelcontextprotocol/inspector#2458 · 1 条评论 ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
难度 2/5 1-3 小时 新手友好度 70/100
carbon-design-system/ibm-products#9907 ·