例えば NextJS の開発をnext
コマンド(開発サーバーが建つ)で開発してもできますが、now dev
を使うとデプロイ先と同じソースやデプロイ時に行う動作と同じ流れでビルドしたファイルを使って開発できます。(このコマンドは2020-01時点でまだベータ版な為今後変わる可能性があります)
now dev
はnow.json
の設定を使うため、このファイルは作っておかなければなりません。とりあえずローカル実行だけなら中身は空の JSON で大丈夫です。
{}
now
ではapi/
ディレクトリへ.js
ファイルを置くと勝手に@now/node
を使ってサーバーレス関数化されるので、ここではそのファイルを適当api/foo.js
とでも作ります。その中身は以下の通りです。
export default (_, res) => {
res.send('foo');
}
これでnow dev
するとapi/foo
とアクセスした時にfoo
と表示されるはずです!
ポート変更
ちなみにnow dev
はデフォルトで3000
で立ち上がりますが--listen
フラグを使うことでこれを変えれます。
now dev --listen 3333
環境変数
もしnow.json
で、now のシークレット変数をenv
またはbuild.env
で設定している場合、ローカルにそれぞれ.env
、env.build
を作る必要があります。例えばnow.json
が、
{
"env": {
"FOO": "@foo"
},
"build": {
"env": {
"BAR": "@bar"
}
}
}
の場合、.env
ではFOO=...
を、.env.build
ではBAR=...
を置かなければなりません。
上記の説明の例をココに置いてます。うまくいかない場合に参考にしてください。