Inlined assets with fractional scales resolve to the wrong variant
Mantenedores costumam responder em até 2 dias
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Estagnada
- Stack de tecnologia
- react-native, typescript, webpack
- Domínio
- build-system
Direção de pesquisa
Read the Re.Pack assets loader's inlineAssets path and its call to AssetSourceResolver.pickScale. The report identifies the unsorted scale list and gives reproductions at pixel ratios 3.5 and 1.5; confirm the expected variant against those cases. Done means fractional and integer scale variants resolve correctly. Pull request #1505 is already open for this issue.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
With inline: true in the assets loader, an image that has a fractional scale variant (@0.75x or @1.5x) resolves to the wrong scale at runtime.
inlineAssets passes Object.keys(sourceSet).map(Number) to AssetSourceResolver.pickScale. Integer-like object keys are listed before other keys, so [0.75, 1, 1.5, 2, 3] becomes [1, 2, 3, 0.75, 1.5]. pickScale expects an ascending list ("Packager guarantees that scales array is sorted").
Reproduction
- Add
[email protected],[email protected],[email protected]and[email protected]. - Enable
inline: truefor the Re.Pack assets loader and renderrequire('./star.png'). - Run on an Android device with a pixel ratio of 3.5.
Expected: the @3x image. Actual: the @1.5x image. A pixel ratio of 1.5 gets @2x instead of @1.5x.
Environment
@callstack/repack main (5.4.2), any React Native version.
- 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
-
status:new type:feature
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 50/100
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á 14 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 35/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 76/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
caprover/caprover-frontend#273 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
ai-driven-dev/framework#1147 ·
Mantenedores costumam responder em até 1 dia
-
agent-ui bug p2
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
amd/gaia#6580 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
cybersemics/em#6232 ·
Mantenedores costumam responder em até 1 dia