Next.jsのポート番号設定


Next.jsは基本ポート:3000で起動します。

これを定義1つで起動ポートから、プログラムからの参照(自身のAPIアクセスなどで)までするためのメモ。

 

next.config.jsドキュメントを見るといつも通り基本的な部分しか乗っていません。

定義ソースを見ろとあるので見てみますがポート関連の設定はなさそうです。

CLIのヘルプを見てみると-pオプションでポート設定が可能なようです。

ソース(next-start.ts, start-server.ts)を追ってみると単純にポート設定しているだけなので他からポート番号を取得できなさそう。

というかhttpモジュールで走ってたんですね。

httpexpressでカスタムサーバーを作ってそっちをいじるのが正攻法かもしれないですが今回はnextメインで進めます。

 

今回はまずpackage.jsonでポート番号を設定。

これでプログラム内でもprocess.env.npm_package_config_PORTでポート番号にアクセス可能ですが、使えるのはサーバーサイド処理のみです。

 

そこでnext.config.jsonでポート番号を再定義します。

これで処理主体に関わらずprocess.env.PORTでポート番号を参照できるようになりました(同じようにprocess.envにアクセスしているように見えますが、DefinePluginによる書き換えなので完全に別物です)。

 

まあ通常使用だとポートを変えることもあまりないので、どっち(scripts, config)も平文で書いておいても同じ結果になります。

若干見た目がよくないのでnuxtみたいにconfig.jsserver.portに設定するだけにならないかな。


コメントを残す

メールアドレスが公開されることはありません。