Node.jsのhttp-serverっていうコマンドラインのウェブサーバーが便利

たとえばGitHubとかで見つけたCSSとかJavaScriptとかのプロジェクトのサンプルとかをささっと確認したい時がありますよね。

そんな時にhttp-serverというやつがすごく便利です。

https://github.com/nodeapps/http-server

このhttp-serverをインストールしておくと、任意のディレクトリで`http-server`というコマンドを実行するだけでそのディレクトリをドキュメントルートにしたウェブサーバーが起動します。

$ http-server 
Starting up http-server, serving ./ on: http://0.0.0.0:8080
Hit CTRL-C to stop the server

 

インストール方法

Node.jsがインストール済みならインストールは簡単です。

$ npm install -g http-server

以上で完了。設定とかも不要です。

 

使い方

ターミナルでドキュメントルートにしたいディレクトリに移動してコマンドを叩くだけです。

$ http-server

ブラウザでhttp://0.0.0.0:8080/にアクセスしてみましょう。

Index_of__

http-serverにはいくつかのコマンドラインオプションが用意されています。

  • -p Port to use (defaults to 8080)
  • -a Address to use (defaults to 0.0.0.0)
  • -d Show directory listings (defaults to ‘True’)
  • -i Display autoIndex (defaults to ‘True’)
  • -e or --ext Default file extension if none supplied (defaults to ‘html’)
  • -s or --silent Suppress log messages from output
  • --cors Enable CORS via the Access-Control-Allow-Origin header
  • -o Open browser window after staring the server
  • -h or --help Print this list and exit.
  • -c Set cache time (in seconds) for cache-control max-age header, e.g. -c10 for 10 seconds. To disable caching, use -c-1.

 http-server -oでブラウザを開いてくれちゃうとこが素敵ですね。

 

そういう人はいないと思いますが、このまま本番で使うのはやめましょうね。

 

追記

複数立ち上げたらどうなるんだろうと思って違うディレクトリでもう一回http-serverと叩いてみたらポート番号が自動的に変わりました。笑

 

追記その2

facebookのほうで教えてもらったんですが、同じようなコマンドで他にも以下のようなやり方があるそうです。

Pythonを使う

MacOSXならデフォルトでインストールされているPythonのSimpleHTTPServerを使うという手があるそうです。

$ python -m SimpleHTTPServer

この場合、127.0.0.1:8000にアクセスすることができます。

ポートを変えたい場合は以下のような感じ。

$ python -m SimpleHTTPServer 8080

このままではややコマンドが長くて覚えられないので、以下のように~/.bash_profileにaliasを登録しておくといいかも。

alias www="python -m SimpleHTTPServer 8080"

Node.jsのSuperStaticを使う

これはhttp-serverよりもややオプションが少ないですが、そのままでもコマンドが短くていいかも。笑

$ ss

インストール方法は例のごとくこんな感じ。

$ npm install -g superstatic

 

以上、ふじむらさん、こもりさんありがとうございました!