Nuxt を Google App Engine へデプロイする
Nuxt を Google App Engine にどうやってデプロイするのか?
Google App Engine へのデプロイは Google のクラウドサービスで一般的な Nuxt アプリケーションをホストするための迅速で簡単な解決策です。
このガイドでは、アプリケーションをローカルに構築し、かつプロジェクトフォルダ全体を Google App Engine に簡単にアップロードするまでを行います。アップロード後、Google App Engine は自動的に package.json の start スクリプトを起動し、アプリケーションはすぐに利用可能になります。
はじめに
Google Cloud アカウントがあるか、プロジェクトと空の Google App Engine を Google App Engine にセットアップしているか確認して下さい。さらにこちら で説明されているように、Google から Cloud SDK (CLI) をダウンロードしてインストールし、Google Cloud Account でログインして下さい。
アプリケーションの設定
一般的な Nuxt アプリーションを App Engine へデプロイするために追加する必要があるのは app.yaml と呼ばれるファイルだけです。ルートプロジェクトディレクトリにその名前の新しいファイルを作成し、以下の内容を追加してください:
runtime: nodejs10
instance_class: F2
handlers:
- url: /_nuxt
static_dir: .nuxt/dist/client
secure: always
- url: /(.*\.(gif|png|jpg|ico|txt))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg|ico|txt)$
secure: always
- url: /.*
script: auto
secure: always
env_variables:
HOST: '0.0.0.0'
またフレキシブルな環境の場合、最小構成は以下になります:
runtime: nodejs
env: flex
アプリケーションのビルドとデプロイ
次にアプリケーションを npm run build か yarn build でビルドします。
現時点で、アプリケーションは Google App Engine にアップロードされる準備ができています。以下のコマンドを実行してください:
gcloud app deploy app.yaml --project [project-id]
ほら!今 Nuxt アプリケーションは Google App Engine にホストされています!
さらなる詳細情報
-
app.yaml ファイルの
instance_class属性はアプリケーションインスタンスのクラスをセットします。F2 インスタンスは完全に無料ではなく、しかし Nuxt アプリケーションの実行に必要な最小のメモリを備えています。 -
package.json の
startはデプロイ後に実行するコマンドであることを確認してください。もし普段start:prod、もしくは他のコマンドで実行しているなら、アプリケーションは期待していたように働かないでしょう。
deploy コマンドには project-name ではなく project-id を指定しているか確認してください。これら 2 つは異なるものですが混合しやすいです。
Clément Ollivier
Daniel Roe
Alex Hirzel
Ajeet Chaulagain
René Eschke
Sébastien Chopin
Nico Devs
Muhammad
Nazaré da Piedade
Naoki Hamada
Tom
Yann Aufray
Anthony Chu
Nuzhat Minhaz
Lucas Portet
Richard Schloss
Xanzhu
bpy
Antony Konstantinidis
Hibariya
Jose Seabra
Eze
Florian LEFEBVRE
Lucas
Julien SEIXAS
Hugo
Sylvain Marroufin
Spencer Cooley
Piotr Zatorski
Vladimir Semenov
Harry Allen
kazuya kawaguchi
Unai Mengual
Hyunseung Lee
Alexandre Chopin
pooya parsa
Nick Medrano
Mosaab Emam
Iljs Путлер Капут
Heitor Ramon Ribeiro
Nero
Yoon Han
Ikko Ashimine
FamCodings
Ayouli
F. Hinkelmann
felipesuri
Christophe Carvalho Vilas-Boas
Leoš Literák
Trizotti
Marcello Bachechi
Rodolphe
Thomas Underwood
Shek Evgeniy
Lukasz Formela
Hugo Torzuoli