angular / angular/angular-cli

Custom vite middleware is not executed for CSS files

Aberta
#27,110 4 comentários 0 reações 0 responsáveis Ver no GitHub
needs: more info
Linguagem predominante
TypeScript
Estrelas
27k
Forks
11.8k
Merge médio
14h 23min
PRs com merge (30d)
162

Descrição

### Command

serve

### Description

We are in the process of migrating from using webpack to esbuild/vite.

For development purposes, we need a way to dynamically switch from one theme to another. At this point, we have achieved it by proxying CSS or image files depending on the host name.

After switching to Vite, it turned out that it could work the same, apart from the fact that for CSS resources, our middleware is never executed.

I found a piece of code that seems to be the root cause. The `AngularMemoryPlugin` handles CSS files in a specific way and never executes `next()`, which terminates the middleware chain.

https://github.com/angular/angular-cli/blob/3d7b5f78bdab834cb50c441296c9bf31f7a5e764/packages/angular_devkit/build_angular/src/tools/vite/angular-memory-plugin.ts#L163-L178

### Describe the solution you'd like

Ideally middleware chain should not be terminated in `AngularMemoryPlugin` for stylesheets (ie. `next()` should be called)

### Describe alternatives you've considered

In the worst case scenario, we will find another solution for our use case. However, since the issue only pertains to CSS files, it would be really helpful if the middleware is executed for these files as well.

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece em packages/angular_devkit/build_angular/src/tools/vite/angular-memory-plugin.ts, no tratamento de CSS por volta das linhas 163–178, e rastreie como a cadeia de middleware do Vite é concluída para as folhas de estilo. Confirme que a alteração preserva o serving de CSS e permite que um middleware personalizado seja executado para recursos CSS; em seguida, verifique o comportamento do comando serve.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
angular, typescript, vite
Domínio
build-system, cli
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
42/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.