remove absolute file paths embedded in sourcemaps generated by `SourceMapPlugin`
Mantenedores costumam responder em até 2 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 50/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- typescript, webpack
- Domínio
- build-system
Direção de pesquisa
Start in packages/repack/src/plugins/SourceMapPlugin.ts, where module names are built into the source map's sources (around lines 92-95) and where the commented-out read of output.devtoolModuleFilenameTemplate sits (around lines 107-108). Check how compiler.options.context is available there and whether the webpack config can be exercised with a small production build. Done means the emitted map no longer contains machine-specific absolute paths, either by honoring the template or by defaulting to paths relative to the context. Agreeing on which of the two options to take first is likely needed with a maintainer.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
When building without a dev server (e.g. a release bundle built in CI), SourceMapPlugin names every module in the source map's sources by its absolute path on the build machine, and there's no way to override this.
RepackPlugin always applies SourceMapPlugin, and SourceMapPlugin ignores output.devtoolModuleFilenameTemplate (the line that would read it is commented out)
Why this is a problem
The source map ends up depending on where the build ran, not just on its inputs:
- Non-reproducible builds. On remote-execution or sandboxed build systems (Bazel, Buck, etc.) the absolute path includes a per-job working directory, so the same commit yields a different map on each worker:
/mnt/ci/worker/7/exec/bazel-out/<config>/bin/<target>.runfiles/<workspace>/node_modules/react-native/Libraries/Components/Pressable/Pressable.js - Error-reporting tools show machine-specific paths. Sentry and similar tools display these paths as frame filenames. Because the prefix changes between builds, a single code mapping (stack trace → repository) can't cover them.
The web-oriented default, webpack://[namespace]/[resourcePath], has none of these problems because [resourcePath] is relative to context.
Suggested solution
- Honor
output.devtoolModuleFilenameTemplatewhen set, falling back to the current behavior otherwise. This seems to be what the commented-out code intended or - Default to paths relative to
compiler.options.contextfor production builds. That keeps the map reproducible, and tools can still resolve files by joining with the project root.
Additional context
No response
- Linguagem predominante
- TypeScript
- Estrelas
- 1.9k
- Forks
- 177
- Merge médio
- 2d 10h
- PRs com merge (30d)
- 23
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
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 callstack/repack
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
callstack/repack#1515 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
ScriptManager caches the rejected promise when a resolver throws, so loadScript/prefetchScript never retryTalvez já em andamento @linhh-phv assumiu há 15 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 35/100
Mantenedores costumam responder em até 2 dias
-
Inlined assets with fractional scales resolve to the wrong variantTalvez já em andamento @RaphaelFakhri assumiu há 16 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 25/100
Mantenedores costumam responder em até 2 dias
-
json as string in JS bundleTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
callstack/repack#1461 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
area:repack type:feature
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 42/100
callstack/repack#1423 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
Todas as issues de callstack/repack
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
Mantenedores costumam responder em até 2 dias
-
reproduced
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
anomalyco/opencode#62052 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
strapi/design-system#2084 ·
Mantenedores costumam responder em até 3 dias
-
Report: &TV InternationalAbertacheck:passed streams:remove
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 67/100
Mantenedores costumam responder em até 1 dia
-
OAuth documentation for GET /api/v2/users/me/ appears inconsistent with required global read scopeAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia