2015-07-09 12 views
10

Ho clonato angular seed che utilizza il nodo http-server e funziona perfettamente utilizzando la seguente configurazione.Come avviare localmente il server http

Comando: inizio NPM (dalla radice del progetto)

A seguito di configurazione nel file di package.json:

"start": "http-server -a localhost -p 8000 -c-1", 
Link to file 

Tuttavia sono in grado di avviare direttamente questo server. ad esempio: dalla radice del progetto, nessuno di questi comandi funzionano:

> angular-seed npm http-server 
> angular-seed node http-server 
> angular-seed http-server 

Non dovrebbe questo (http-server) è disponibile qui (radice, dove ha ottenuto installato da)? Qualcuno potrebbe spiegarmi come funziona e come posso usarlo direttamente dalla radice del progetto.

Sono sicuro che funzionerà bene se lo installo a livello globale, ma non mi interessa.

risposta

23

Quando si esegue npm install nella root del progetto, vengono installate tutte le dipendenze di npm nella directory node_modules del progetto.

Se si dà un'occhiata alla directory del progetto node_modules, si dovrebbe vedere una directory chiamata http-server, che detiene il pacchetto http-server, e una cartella .bin, che detiene i binari eseguibili dalle dipendenze installate. La directory .bin dovrebbe avere il binario http-server (o un collegamento ad esso).

Quindi nel tuo caso, si dovrebbe essere in grado di avviare il http-server eseguendo il seguente dalla directory principale del progetto (invece di npm start):

./node_modules/.bin/http-server -a localhost -p 8000 -c-1 

Questo dovrebbe avere lo stesso effetto di esecuzione npm start.

Se si sta eseguendo una shell Bash, è possibile semplificare questo con l'aggiunta della cartella ./node_modules/.bin alla variabile d'ambiente $PATH:

export PATH=./node_modules/.bin:$PATH 

Questo metterà la cartella sul vostro cammino, e si dovrebbe essere in grado di semplicemente eseguire

http-server -a localhost -p 8000 -c-1 
+0

Grazie per la spiegazione di questo. –

Problemi correlati