SPA 用の serve は servor でいいかも
- カテゴリ:
- JavaScript
- コメント数:
- Comments: 0
◆ 簡単に使える
HTML や JavaScript などの静的ファイルホストする Web サーバがほしいとき Node.js しかない環境だと serve を使ってます
お手軽ですし 自動で作ってくれるインデックスページも見やすいです
しかし SPA ページを作るときに困りました
アクセスしたパスに静的ファイルがあるならそれを返す部分はいいのですが 存在しない場合にデフォルトの HTML ファイルを常に返してほしいです
serve ではその設定ができないようです
中で使ってるのは server-handler というパッケージなので これを直接 JavaScript から使って sendError に見つからなかったときの処理として デフォルトの HTML を返すようにすれば一応可能です
ただ これをするとインストールしてすぐに短いコマンドを打つだけで使えるというメリットがなくなります
それなら別のパッケージ探したほうが良さそう
ということで デフォルトの HTML を設定できる静的ファイルサーバを探してみました
正確には 「Servør」 という名前のようです
o がアルファベットではなく o に斜めの線が入ってます
e っぽくみえるというやつですね
もともとは http-server-spa という名前だったようです
これの新しい版で名前を servor に一新したみたいです
こっちのほうが短くて打ちやすいのでいいですね
肝心の使い方は
よく使いそうなのがオプション名なしで書けます
fallback はデフォルトの HTML です
index.html がデフォルトなので多くの場合省略できます
グローバルインストールでもいいですが npx で
のようにつかうこともできます
しかしどっちも servor ほど使いやすくはなさそうです
sirv は使えるコマンドが start しか書いてないのに例には build などもあって それらの説明が書いてないです
--single オプションで SPA として使えるらしいのですがデフォルトファイルをどう指定するかも書かれてません
cli じゃない本体の方の API を見てみると single には触れられてもいないです
superstatic は設定ファイルで rewrite できるようです
書き方は違うものの Apache の設定みたいなイメージですね
細かく設定したいなら良いかもしれませんがお手軽にやりたいのでこれは向いてませんでした
それ以外には http-server ではファイルが見つからないときに 404.html というマジックファイルが使われるのでこれを使って SPA を実現できるようです
見つからないので 404 なのですが なんかこれじゃない感があります
試してませんが その場合のレスポンスのステータスコードは 200 なのか 404 なのかどっちなんでしょう?
とりあえず servor が一番良さそうでした
お手軽ですし 自動で作ってくれるインデックスページも見やすいです
しかし SPA ページを作るときに困りました
アクセスしたパスに静的ファイルがあるならそれを返す部分はいいのですが 存在しない場合にデフォルトの HTML ファイルを常に返してほしいです
serve ではその設定ができないようです
中で使ってるのは server-handler というパッケージなので これを直接 JavaScript から使って sendError に見つからなかったときの処理として デフォルトの HTML を返すようにすれば一応可能です
ただ これをするとインストールしてすぐに短いコマンドを打つだけで使えるというメリットがなくなります
それなら別のパッケージ探したほうが良さそう
ということで デフォルトの HTML を設定できる静的ファイルサーバを探してみました
servor
https://www.npmjs.com/package/servor正確には 「Servør」 という名前のようです
o がアルファベットではなく o に斜めの線が入ってます
e っぽくみえるというやつですね
もともとは http-server-spa という名前だったようです
これの新しい版で名前を servor に一新したみたいです
こっちのほうが短くて打ちやすいのでいいですね
肝心の使い方は
servor <root> <fallback> <port>
よく使いそうなのがオプション名なしで書けます
fallback はデフォルトの HTML です
index.html がデフォルトなので多くの場合省略できます
グローバルインストールでもいいですが npx で
npx servor
のようにつかうこともできます
その他
その他にも preact-cli のテンプレートで使われていた sirv や preact serve の選択肢にあった superstatic でもできそうですしかしどっちも servor ほど使いやすくはなさそうです
sirv は使えるコマンドが start しか書いてないのに例には build などもあって それらの説明が書いてないです
--single オプションで SPA として使えるらしいのですがデフォルトファイルをどう指定するかも書かれてません
cli じゃない本体の方の API を見てみると single には触れられてもいないです
superstatic は設定ファイルで rewrite できるようです
書き方は違うものの Apache の設定みたいなイメージですね
細かく設定したいなら良いかもしれませんがお手軽にやりたいのでこれは向いてませんでした
それ以外には http-server ではファイルが見つからないときに 404.html というマジックファイルが使われるのでこれを使って SPA を実現できるようです
見つからないので 404 なのですが なんかこれじゃない感があります
試してませんが その場合のレスポンスのステータスコードは 200 なのか 404 なのかどっちなんでしょう?
とりあえず servor が一番良さそうでした