comando http-server no encontrado

Estoy tratando de ejecutar un servidor http básico para probar algunos archivos html y sigo teniendo el mismo error.

Hice sudo npm install -g http-server un montón de veces, pero cada vez que lo bash

 simple git:(master) http-server 

Sigo recibiendo este error:

zsh: command not found: http-server

He intentado otras variaciones como http-server / 8000, he intentado usar una syntax de comando diferente pero nada parece estar funcionando.

mi versión npm es 5.5.1, mi versión de nodo es 8.3.0 y mi sistema operativo es Mac OSX Sierra v10.12.6

Por favor, avíseme si puede ayudar o si ve algo que estoy haciendo mal y que simplemente no me doy cuenta.

edit: pequeña actualización Pude hacer funcionar un servidor con python pero realmente me gustaría saber por qué esto no funcionó.

edición 2: problema resuelto gracias!

Es posible que no tenga sus binarios npm en PATH .

Asegúrese de que sus binarios npm estén en ruta ejecutando echo $PATH . Deberías ver, en algún lugar de la salida impresa, algo como:

 /home/bob/.npm-packages/bin:/usr/lobal/bin:/other/paths/that/contain/bins 

/home/bob/.npm-packages/bin es el directorio donde se instalan mis archivos binarios npm cada vez que ejecuto npm -g install whatever .

Si no ve algo así, lea la sección Corrección de permisos de npm que lo guiará para asegurarse de que su entorno esté configurado correctamente. La opción 2 habla explícitamente de arreglar PATH .

Otra cosa útil que normalmente hago es agregar todo esto a mi .bashrc o .bashprofile que está en su directorio de inicio:

  • En macOS /Users/username/
  • En * nix: /home/username/

.bashrc

 NPM_PACKAGES="${HOME}/.npm-packages" PATH="$NPM_PACKAGES/bin:$PATH" 

Sin embargo, como parece que está usando zshell, tendrá que usar cualquier convención que sigan para los archivos rc.


Puede arreglar eso o puede instalar http-server a nivel de paquete para su proyecto y luego iniciarlo con un comando npm.

Ejecuta npm install --save-dev http-server

y poner en su package.json:

 { "scripts": { "start": "http-server ." } } 

y luego correr

 npm start 

Si sudo npm install -g y no tiene un prefijo de npm establecido, el archivo probablemente se instale en /usr/local/bin , pero podría instalarse más o menos en cualquier lugar. Es probable que el directorio en el que se está instalando no esté en su $PATH , por lo que debería averiguar dónde está instalado y luego actualizar su $PATH para incluirlo.

Recomiendo encarecidamente que evite evitar ejecutar sudo con npm. En su lugar, puede actualizar su prefix en su configuración de npm (o actualizar manualmente en ~/.npmrc a algo como prefix=~/.npm pero depende de usted. Luego, también debe asegurarse de que ~/.npm/bin sea en tu camino

Aunque a veces los paquetes globales pueden ser útiles, si están vinculados a proyectos particulares, creo que es mejor instalarlo como parte del proyecto y ejecutarlo allí:

 cd /path/to/project/with/http-server npm install http-server # any of: npx http-server node_modules/.bin/http-server 

Además, si tiene un package.json#scripts , puede hacer referencia a cualquier binario instalado localmente como en:

 "scripts": { "server": "http-server" } 

y luego usar el npm run server .