Node.js
のHTTP
サーバにアクセスするとVue.js
のページが帰ってくるようにしたい。
超絶簡単に実装できるので先に説明してしまう。
express
をインストール
npm i express
Node.js
側のコード。ES6
にて記述(ES6は最新版Node.js
がインストールされていれば拡張子をmjs
にするだけ)
import Express from 'express'
const app = Express();
app.use(Express.static('./dist'))
app.listen(8001, () => {
console.log('Vue.js server: http://localhost:8001')
})
Vue.js
側は何の設定も必要なくビルドだけやっておく。
npm run build
するとdist
フォルダが出力されるのでそれをNode.js
のmjs
が置いてあるフォルダと同じ場所にコピーする。
以上でlocalhost:8001
にアクセスすれば動作するはずだ。
完了である。たったこれだけで良い。
以下は興味ある人だけ読んで頂ければと思う。
という方がいると思う。これは過去に解説しているのでそちらを参照。
【Vue.js】buildしたhtmlをダブルクリック一発で動かす!【やたら簡単】 | Blog
今回はNode.js
サーバと通信して処理を行うタイプのアプリを想定してVue.js
がそのUIとして動作する前提で記事を執筆している。
例えば次のような時
Vue.js
によってユーザーからデータを入力してNode.js
サーバへ送信Node.js
で何らかの処理を行うVue.js
側に結果を表示するこんなことはよくあると思う。
Vue.js
の部分だけNetlify
にデプロイしてNode.js
のサーバは別で用意するなどという方法もあるが・・・
これはNode.js
のホストとVue.js
のホストが違うためセキュリティ的な懸念が生ずる(CORS
の制限でそもそもアクセスができないかも)
またローカル線用のNode.js
サーバなら尚更Vue.js
部分だけ外部に出すのはマズい。
調べてみると別のサイトでAngular
で全く同じことをやってるサイトもあったので需要はある手法だと思う。
またシンプルにVue.js
でローカル専用ツールを作った場合わざわざVue.js
をnpm run dev
した上でNode.js
を起動するのも面倒。
この方法で保存しておけば一瞬でVue.js
とNode.js
のサーバが同時起動できる。
もし必要であればやってみてほしい。