netlify-cli 23.12.1 breaks Jekyll + Vite-Ruby development setup
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- jekyll, typescript, vite
Direzione di ricerca
Riproduci il problema con il Procfile, netlify.toml e config/vite.json descritti nell’issue, confrontando netlify-cli 23.10.0 con 23.12.1. Traccia l’aut rilevamento del framework da parte della CLI e il comportamento di attesa della porta; il lavoro è completato quando un server Jekyll su targetPort 3000 si avvia correttamente senza che Vite venga trattato come framework primario.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- TypeScript
- Stelle
- 1.9k
- Fork
- 480
- Merge medio
- 1g 15h
- PR unite (30g)
- 66
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di netlify/cli
-
`client-ip` is not an IP address when `x-forwarded-for` holds a list or a portForse già presa @Dev-next-gen l’ha presa 20 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
`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`)Forse già presa @bsplatt92 l’ha presa 61 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
area: command: deploy area: docs type: feature
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
netlify/cli#1984 · 19 commenti · 3 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
type: bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
I maintainer di solito rispondono entro 1 giorno
-
type: bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
backend priority:P3 privacy-fix
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: 【优化】对话消息底部增加发送时间展示Apertabug desktop v3 windows
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
esengine/DeepSeek-Reasonix#13697 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area:security documentation effort:S priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
app:web meta:ops
Difficoltà 2/5 Mezza giornata Idoneità per principianti 78/100
osu-tournament-rating/otr#1113 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100