Simultaneous builds are unreliable
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 42/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript, nodejs, rollup, typescript
- Domínio
- build-system
Direção de pesquisa
Comece em src/index.js por volta da linha 539 e inspecione como o diretório de cache é fornecido ao rollup-plugin-typescript2. Reproduza dois builds simultâneos do microbundle na configuração no estilo CI e, em seguida, verifique se os builds concorrentes não produzem mais o erro ENOENT de rename relatado, desabilitando o cache ou separando os locais de cache.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- JavaScript
- Estrelas
- 8.1k
- Forks
- 358
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de developit/microbundle
-
CSS
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
developit/microbundle#1002 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
developit/microbundle#789 · 1 comentário ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
developit/microbundle#1100 · 4 comentários ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
developit/microbundle#1094 · 1 comentário ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
developit/microbundle#1093 · 3 comentários · 1 reação ·
Todas as issues de developit/microbundle
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Theme loads third-party resources on every page (jsdelivr web font, cdnjs Font Awesome) – GDPR Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
docToolchain/docToolchain#1705 ·
-
Timezone select lists one option per character; duplicate "Failed" reason; shared tracker popover id Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
nightscout/nocturne#1414 ·
-
bug v2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
modelcontextprotocol/inspector#2458 · 1 comentário ·
-
Mend: dependency security vulnerability status: needs triage 🕵️♀️
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
carbon-design-system/ibm-products#9907 ·