Azure / Azure/static-web-apps-cli

Proxied requests for static content through the SWA CLI are very slow

Ouverte
#736 25 commentaires 11 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
TypeScript
Étoiles
668
Forks
156
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

- [x] Before filing this issue, please ensure you're using the latest CLI by running `swa --version` and comparing to the latest version on [npm](https://www.npmjs.com/package/@azure/static-web-apps-cli).

**Are you accessing the CLI from the default port `:4280` ?**

- [ ] No, I am using a different port number (`--port`) and accessing the CLI from that port
- [x] Yes, I am accessing the CLI from port `:4280`

> Make sure you are accessing the URL printed in the console when running `swa start`!

**ℹ️ NOTE: Make sure to enable debug logs when running any `swa` commands using `--verbose=silly`**

**Describe the bug**
When I run a [Vite](https://vitejs.dev/) app behind the SWA CLI, requests for static files take much longer through the SWA emulator (port 4280) than if I access the Vite app directly (5173). For example, requesting the same static file can take about 1 second through SWA, but only a couple milliseconds through the Vite dev server directly. Network tab screenshots are below.

This especially affects the startup performance of any apps using Vite with SWA, since Vite apps serve many small static files in development.

**To Reproduce**
I created a repo showing the issue: https://github.com/geoffrich/swa-cli-issue-repro. If you clone this repo, you can skip to step 5 on the below repro steps.

Steps to reproduce the behavior:

1. Init a new Vite app with `npm create vite@latest` (tested with both the Svelte and React presets)
2. `cd` into the created project
3. Install the SWA CLI with `npm i -D @azure/static-web-apps-cli@latest`
4. Init the CLI config with `npx swa init`. Accept default values.
5. Run the SWA emulator with `npx swa start`
6. Access the site at `localhost:4280`. Open the network tab and notice that requests for the JS files take ~1 second.
7. Access the Vite app directly at `localhost:5173`. Open the network tab and notice that requests for the JS files take only a few milliseconds.

**Expected behavior**
Requests for static files are not significantly slower when running behind the SWA emulator.

**Screenshots**
Network tab on localhost:4280 (note request times of 1 second for each static file)

image

Network tab on localhost:5173 (note request times of a few milliseconds)

image

**Desktop (please complete the following information):**

- OS: MacOS
- Version: Ventura 13.4.1

**Additional context**
Add any other context about the problem here.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Utilisez le dépôt swa-cli-issue-repro lié et suivez la configuration Vite indiquée. Exécutez ensuite `npx swa start` et comparez les temps de réponse des fichiers statiques sur les ports 4280 et 5173. Commencez par retracer le chemin de SWA CLI qui achemine les requêtes statiques vers le serveur Vite. Le travail est terminé lorsque les fichiers statiques servis via l’émulateur ne sont pas significativement plus lents que les requêtes directes vers Vite.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
typescript, vite
Domaine
cli, performance, web-dev
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.