Come posso ottenere npm start in una directory diversa?


293

Di solito cdnella directory dell'app e poi corro npm start.

Ho la sensazione che dovrebbe esserci un modo per correre npm startcon un parametro path. Tuttavia, la documentazione di npm start non contiene tale funzionalità.

Ho provato solo a trovare npm start ./myappnon funziona. C'è un modo per farlo?

Risposte:


475

Questo one-liner dovrebbe funzionare:

npm start --prefix path/to/your/app

Doc. Corrispondente


18
Non funziona. Prova di trovare package.json nella directory corrente.
Shashwat Kumar,

@ShashwatKumar hai mai trovato un modo di farlo?
Succoso

3
Ho appena testato per eseguire questo comando in una cartella che ha anche un package.json, e npm ha seguito correttamente il path/to/your/appper trovare il giusto package.json. Quale versione di npm stai usando?
Amaury Liet,

3
Funzionando su macOS10.14.x con il nodo 10.xe npm 6.9.0 il one-liner ha funzionato perfettamente. Grazie.
Tod

3
Documenti per --prefixqui: docs.npmjs.com/misc/config#prefix
lealceldeiro

88

Sotto il comando dove si projecttrova una cartella che contiene il package.jsonfile

npm run --prefix project ${COMMAND}

sta funzionando pure. Utile nelle applicazioni basate su Docker.


21

npm start --prefix path/to/your/app

& inside package.json aggiungi il seguente script

"scripts": {
   "preinstall":"cd $(pwd)"
}

6
Puoi spiegare cosa fa lo script preinstall?
Junvar,

Questo non è multipiattaforma. Funziona solo su Unix e non su palle dispari come Windows.
Jack Giffin,

18

Sono venuto qui da Google, quindi potrebbe essere rilevante per gli altri: perché yarnpotresti usare:

yarn --cwd /path/to/your/app run start 

6

Anche questo one-liner dovrebbe funzionare:

(cd /path/to/your/app && npm start)

Si noti che la directory corrente verrà cambiata in / path / to / your / app dopo aver eseguito questo comando. Per preservare la directory di lavoro:

(cd /path/to/your/app && npm start && cd -)

Ho usato questa soluzione perché un file di configurazione del programma che stavo modificando all'epoca non supportava la specifica degli argomenti della riga di comando.


2
Per favore, quando si utilizza il pulsante "-1", aggiungere un commento in modo che i visitatori abbiano la
minima

6
Non ho votato a fondo. Ma credo che sia downvoted a causa degli effetti collaterali. La soluzione non è pura, cambia la directory corrente.
Vladimir Serykh,

Questa è in realtà una soluzione molto comune, l'unico miglioramento che sarebbe stato fatto è aggiungere parentesi per evitare gli effetti collaterali citati. Tuttavia, le soluzioni di cui sopra sono migliori nella mia opzione, poiché si basano esclusivamente su NPM.
Rafał Wrzeszcz,

È possibile aggiungere cd -alla fine per rimuovere l'effetto collaterale.
babca,

@babca a meno che npm startnon fallisca ... devi dividerlo in più dichiarazioni
Andreas

2

Per questo elenco di problemi di npm , è possibile risolvere un problema tramite npm config

name: 'foo'
config: { path: "baz" },
scripts: { start: "node ./$npm_package_config_path" }

Sotto Windows, scriptspotrebbe essere{ start: "node ./%npm_package_config_path%" }

Quindi eseguire la riga di comando come di seguito

npm start --foo:path=myapp

quale script potrebbe fare per i pacchetti scaricati? Supponiamo che io voglia accedere al file js dal pacchetto npm scaricato
Hardik Rana
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.