web-dev-qa-db-fra.com

Commande http-server introuvable

J'essaie d'exécuter un serveur http de base pour tester certains fichiers html et je continue à rencontrer la même erreur.

J'ai fait Sudo npm install -g http-server un tas de fois, mais à chaque fois que j'essaye

simple git:(master) http-server

Je reçois toujours cette erreur:

zsh: command not found: http-server

J'ai essayé d'autres variantes telles que http-server/8000, j'ai essayé d'utiliser une syntaxe de commande différente mais rien ne semble fonctionner.

ma version npm est 5.5.1, ma version de noeud est 8.3.0 et mon système d'exploitation est Mac OSX Sierra v10.12.6

Veuillez me faire savoir si vous pouvez m'aider ou si vous voyez quelque chose que je fais mal et que je ne remarque pas.

edit: petite mise à jour J'ai pu obtenir un serveur avec python mais j'aimerais vraiment savoir pourquoi cela ne fonctionnait pas.

edit 2: problème résolu merci!

6
Jordan Forbes

Vous ne pouvez pas avoir vos binaires npm dans PATH.

Assurez-vous que vos binaires npm sont dans le chemin en exécutant echo $PATH. Vous devriez voir quelque part dans la sortie imprimée quelque chose comme:

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

/home/bob/.npm-packages/bin est le répertoire dans lequel mes fichiers binaires npm sont installés chaque fois que j'exécute npm -g install whatever.

Si vous ne voyez pas quelque chose comme ça, lisez Fixing npm permissions qui vous guidera pour vous assurer que votre environnement est correctement configuré. L'option 2 parle explicitement de la correction de PATH.

Une autre chose pratique que je fais habituellement est d'ajouter tout cela à mon .bashrc ou .bashprofile qui se trouve dans votre répertoire personnel:

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

. bashrc

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

Cependant, comme il semble que vous utilisiez zshell, vous devrez utiliser la convention qu'ils suivent pour les fichiers rc.


Vous pouvez soit résoudre ce problème, soit installer le serveur http au niveau du package pour votre projet, puis le démarrer via une commande npm.

Courir npm install --save-dev http-server

et mettez dans votre package.json:

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

puis exécutez

npm start
12
zero298

Si tu fais Sudo npm install -g et vous n'avez pas de préfixe npm, le fichier est probablement installé dans /usr/local/bin, mais il pourrait être installé plus ou moins n'importe où. Quel que soit le répertoire dans lequel il est installé, il ne se trouve probablement pas dans votre $PATH, vous devez donc déterminer où il est installé, puis mettre à jour votre $PATH pour l'inclure.

Je vous recommande fortement d'éviter d'éviter d'exécuter Sudo avec npm. Au lieu de cela, vous pouvez mettre à jour votre prefix dans votre configuration npm (ou mettre à jour manuellement dans ~/.npmrc à quelque chose comme prefix=~/.npm Mais c'est à toi de voir. Ensuite, vous devez également vous assurer que ~/.npm/bin est sur votre chemin.

Même si les packages globaux peuvent parfois être utiles, s'ils sont liés à des projets particuliers, je pense qu'il est préférable de simplement l'installer dans le cadre du projet et de l'exécuter là-bas:

cd /path/to/project/with/http-server
npm install http-server

# any of:
npx http-server
node_modules/.bin/http-server

Aussi, si vous avez un package.json#scripts, vous pouvez référencer tout binaire installé localement comme dans:

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

puis utilisez npm run server.

5
Explosion Pills
npm install http-server -g.

veuillez installer http-server globalement et là après u peut exécuter la commande

http-server -o
4
Lijo