netlify-cli 23.12.1 breaks Jekyll + Vite-Ruby development setup
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- jekyll, typescript, vite
Línea de trabajo
Reproduce el fallo con el Procfile, netlify.toml y config/vite.json descritos en el issue, comparando netlify-cli 23.10.0 con 23.12.1. Rastrea la autodetección de frameworks de la CLI y su comportamiento al esperar el puerto; se considera terminado cuando un servidor Jekyll en targetPort 3000 se inicia correctamente sin que Vite se trate como el framework principal.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Bug Report: netlify-cli 23.12.1 breaks Jekyll + Vite-Ruby development setup
Description
After upgrading from [email protected] to [email protected], netlify dev fails to start in a Jekyll project that uses vite-ruby for asset compilation. The CLI incorrectly auto-detects Vite as the primary framework and tries to wait for it on targetPort, causing timeouts.
Environment
- netlify-cli version: 23.12.1 (broken), 23.10.0 (works)
- Node version: 24.11.1
- OS: Ubuntu 22.04 (GitHub Actions), macOS (local)
- Framework: Jekyll 4.4.1 + vite-ruby 5.1.1
- Vite version: 7.2.4
Setup
This project uses:
- Jekyll as the static site generator (runs on port 3000)
- Vite via
vite-rubyfor asset compilation (runs on port 2036) - Foreman to orchestrate both processes
- Netlify Dev to proxy the Jekyll server (port 7777 → 3000)
Configuration Files
Procfile:
netlify: npx netlify dev
jekyll: bundle exec jekyll serve --port 3000 --livereload --livereload-port 25729 --config jekyll-dev.yml
netlify.toml:
[dev]
autoLaunch = false
port = 7777
targetPort = 3000
config/vite.json:
{
"development": {
"port": 2036
}
}
Steps to Reproduce
- Create Jekyll site with
vite-rubygem installed - Configure
Procfileto start both netlify dev and Jekyll - Set
config/vite.jsonwith Vite on port 2036 - Set
netlify.tomlwith targetPort 3000 for Jekyll - Run
bundle exec foreman start
Expected Behavior (23.10.0)
15:12:54 netlify.1 | ⬥ Starting Vite dev server
15:12:55 netlify.1 | ✔ Vite dev server ready on port 3000
15:12:55 netlify.1 | ✔ Waiting for framework port 3000
15:12:55 netlify.1 | │ Local dev server ready: http://localhost:7777 │
Netlify Dev correctly waits for Jekyll on port 3000 and starts successfully.
Actual Behavior (23.12.1)
15:12:54 netlify.1 | ⬥ Starting Vite dev server
15:12:55 netlify.1 | ⠋ Waiting for Vite dev server to be ready on port 3000
15:13:10 netlify.1 | ✖ Still waiting for server on port 3000 to be ready. Are you sure this is the correct port for Vite?
15:13:10 netlify.1 | Error: Timed out waiting for port '3000' to be open
Despite Vite running on port 2036 (as configured), netlify-cli 23.12.1 detects it and expects it on targetPort 3000, ignoring that Jekyll is the actual framework serving the site.
Root Cause
Version 23.12.1 introduced more aggressive framework auto-detection that:
- Detects
vite.config.tspresence and assumes Vite is the primary framework - Overrides
targetPortconfiguration to wait for Vite instead of Jekyll - Ignores that Vite is running on a different port (2036) as configured in
config/vite.json
Workarounds Attempted
❌ Setting framework = "#custom" - Requires command parameter, conflicts with Procfile setup
❌ Separating Jekyll to port 4000, Vite to 3000 - Still detects Vite and waits for wrong port
❌ Adding explicit command in netlify.toml - Creates duplicate Jekyll processes with Foreman
✅ Downgrading to [email protected] - Works correctly
Proposed Solutions
- Add framework detection priority: When both Jekyll and Vite are present, prefer Jekyll as the primary framework
- Respect vite-ruby configuration: Check
config/vite.jsonfor actual Vite port before assumingtargetPort - Document framework override: Clarify how to disable Vite auto-detection when it's used as a build tool, not the primary framework
- Add
ignoreFrameworksoption: Allow explicitly ignoring certain framework detectors
Related Issues
- #791 - ntl dev hangs waiting for port 3000 with Vite
- #7528 - netlify dev fails to find vite in v22.1.7+
- #4942 - waiting for framework port 3000
- #3818 - dev server fallback port detection
Additional Context
This affects any Jekyll project using vite-ruby, jekyll-vite, or similar asset pipeline integrations where Vite is a build tool, not the primary framework. The 23.10.0 → 23.12.1 upgrade breaks existing working setups without clear migration path.
Full reproduction available at: kumahq/kuma-website#2497
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.9k
- Forks
- 478
- Merge medio
- 2 d 17 h
- PR fusionados (30 d)
- 63
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de netlify/cli
-
netlify dev returns 403 for static files in subdirectories on Windows (backslash in rewritten path)Posiblemente ocupada @Ramnath0521 la tomó hace 3 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
`client-ip` is not an IP address when `x-forwarded-for` holds a list or a portPosiblemente ocupada @Dev-next-gen la tomó hace 11 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
`netlify dev` with `--cwd` from outside the project: every function 500s with "module is not defined in ES module scope" (`detectZisiBuilder` passes a string to `readPackageUp`)Posiblemente ocupada @bsplatt92 la tomó hace 52 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
area: command: deploy area: docs type: feature
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
netlify/cli#1984 · 19 comentarios · 3 reacciones ·
Los mantenedores suelen responder en 1 día
-
CARDAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 5/100
Los mantenedores suelen responder en 1 día
Todos los issues de netlify/cli
Issues similares
-
[Bug]: Server git tests sign fixture commits with the developer's key when run from the repo rootAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
melgarafael/DeskcommCRM#2657 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
MystenLabs/MemWal#1163 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
"Explore the letters"-button should read "Explore the papers"Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. AbiertoMondriaan
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
knaw-huc/textannoviz#709 ·
Los mantenedores suelen responder en 1 día
-
billion-context-pi
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ranxianglei/billion-context#2521 · 3 comentarios ·
Los mantenedores suelen responder en 1 día