なぜNuxt.jsでサーバーが起動できるんでしょうか?
裏でNode.jsが動いているんでしょうか?
Nuxt.jsにはWebサーバのアプリケーションが付属で付いてきます。
勿論開発するコストは0じゃありません。
何故開発するのか?
そうした方がWebアプリの開発者が楽できるからです。
だからわざわざNuxt.jsの作者はWebサーバを開発して
仕組みとして組み込んでいるのです。
あなたの次のセリフを考えておきました
じゃあ、何故Webサーバを起動した方が楽になるの?
HTMLファイル吐き出して勝手にローカルで見ればいいじゃん
確かにChrome等のブラウザには、
ローカルのハードディスクに保存したHTML・PDFファイルを開いて閲覧する機能があります。
しかし、それだとWebサーバで使えるべき機能が備わっていないなど、異なる挙動をする点がいくつも存在します。
ざっと30秒程で思いついた内容です
致命的か否かは人によると思いますが、Ajaxは割と致命的なサービスは多いでしょう。
- ライブリロード機能
- Ajax
- baseタグ等の挙動が違う
- リンクのルート等の挙動が違う
Webページを制作する人間は古来より
Apache等のWebサイトを構築するソフトウェアを利用して、
http://localhost/hogehoge.html
というパスにアクセスすれば閲覧出来るような仕組みを使ってWebサーバを構築していました。
それは今も変わりません。
ローカルのファイルをfile://xxx
でアクセスしてもダメなんです。
誰かがWebサーバを立ち上げてhttp://localhost/xxx
にアクセスして確認する必要があります。
なんでそのApacheとかいう専用ソフトウェアでWebサーバーを構築しないの?
Webエンジニアは1つのプロジェクトのみに集中出来るわけではありません。
一人で複数のWebサービスをメンテナンスする場面も存在します。
1個のソフトウェアで方向性ががっちり固定されるApache等のような仕組みは構築したくありません。
Webエンジニア達はサーバを必要な時に立ち上げ、
用事が済んだらすぐに終了出来るようにしたいと考えるようになりました。
Node.js、Ruby、Pythonといった様々なプログラミング言語で
Webサービスを構築・提供する仕組みはありますが、
その多くがこの思想のように「使うときだけWebサーバを裏で動かす」、
そして使わない時は終了してメモリを節約出来るようになっています。
Nuxt.jsはどういうサービスなのでしょう?
Node.jsを利用してHTMLとJSファイルを作って簡単にフロントエンドのWebサービスを構築、
提供する為のフレームワークですよね?
なら利便性の為に、npm run dev
コマンドを叩くと
すぐにWebサーバを立ち上がるような仕組みを開発してても不思議じゃないし、
Nuxt.jsが便利を名乗るならこの程度は出来て貰わないと困る。
そんな感じの印象を受けますね。