Don't use `--` when the `npmClient` is `pnpm`

Aperta
#5,020 1 commento 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
typescript, vite
Ambito
cli

Direzione di ricerca

Inizia dagli script di package.json e segui il punto di ingresso ionic capacitor run android --livereload --external quando npmClient è pnpm. Riproduci il comando con pnpm e Vite, quindi verifica che gli argomenti di host e porta arrivino a Vite senza il -- aggiuntivo e che l'attesa della connettività termini.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

triage

Description:

When running ionic capacitor run android --livereload --external, I get an endless loop of [INFO] Waiting for connectivity with pnpm...

> pnpm run ionic:serve -- --host=0.0.0.0 --port=8100
[pnpm] > theia-mobile@0.1.1 ionic:serve /home/nato/Code/github.com/Omerlo-Technologies/theia-mobile
[pnpm] > vite dev "--" "--host=0.0.0.0" "--port=8100"
[pnpm]   VITE v4.3.9  ready in 474 ms
[pnpm]   ➜  Local:   http://localhost:5173/
[pnpm]   ➜  Network: use --host to expose
[pnpm]   ➜  press h to show help
[INFO] Waiting for connectivity with pnpm...
[INFO] Waiting for connectivity with pnpm...
[INFO] Waiting for connectivity with pnpm...

The issue is that pnpm run ionic:serve -- --host=0.0.0.0 --port=8100 doesn't work as expected because of that -- in the middle. -- is useful when you want npm to pass additional command-line arguments to scripts, but pnpm isn't limited by this restriction and it passes the whole thing. When vite receives that, it ignores everything after it.

This can be tested:

❯ vite dev --host=0.0.0.0 --port=8100

  VITE v4.3.9  ready in 527 ms

  ➜  Local:   http://localhost:8100/
  ➜  Network: http://192.168.1.213:8100/
  ➜  Network: http://192.168.1.214:8100/
  ➜  press h to show help


❯ vite dev -- --host=0.0.0.0 --port=8100

  VITE v4.3.9  ready in 519 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h to show help

Steps to Reproduce:

  1. Have a Vite app (ex: SvelteKit)
  2. Setup Capacitor and Ionic
{
	"name": "Hello World",
	"integrations": {
		"capacitor": {}
	},
	"type": "custom",
	"npmClient": "pnpm"
}
  1. Set these scripts in package.json
"dev:android": "ionic capacitor run android --livereload --external",
"ionic:serve": "vite dev",
  1. Run pnpm dev:android

Output:

My ionic info:

Ionic:

   Ionic CLI : 7.1.1 (/home/nato/.local/share/pnpm/global/5/.pnpm/@ionic+cli@7.1.1/node_modules/@ionic/cli)

Capacitor:

   Capacitor CLI      : 5.0.5
   @capacitor/android : 5.0.5
   @capacitor/core    : 5.0.5
   @capacitor/ios     : 5.0.5

Utility:

   cordova-res : not installed globally
   native-run  : not installed globally

System:

   NodeJS : v20.2.0 (/usr/bin/node)
   npm    : 9.7.1
   OS     : Linux 6.2

Other Information:

Admittedly, this could be seen as a vite issue, but I it's possible that they would consider rejecting everything after -- as a security benefit.

Lingua principale
TypeScript
Stelle
2k
Fork
681
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ionic-team/ionic-cli

Tutte le issue di ionic-team/ionic-cli

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.