Node Vue JS を使用してプロジェクトを構築しましたが、プロジェクトの構造にはフロントエンド コードとバックエンド コード用に異なるディレクトリがあります。 /api
はバックエンド コードであり、独自の package.json があります。一方、ui
はフロントエンド コードであり、独自の package.json があります。プロジェクトは次のように構成されています:
Cloudbuild を使用してプロジェクトを App Engine にデプロイしようとしています。 cloudbuild.yaml
ファイルの構造は次のとおりです:
ステップ 0 ~ 2 は正常に完了しますが、実稼働用の Vue アプリケーションをビルドするとき、特に yarn run build
コマンドでビルドが失敗します。このコマンドは、/ui
ディレクトリの package.json に vue-cli-service build
としてリストされています。
エラー メッセージは次のとおりです/bin/sh: 1: vue-cli-service: not found
Cloudbuild が vue-cli を見つけられないようです。vue-cli がインストールされていないか、何をビルドすればよいのかわかりません。
私の質問は、Cloudbuild を使用して、異なるディレクトリを持つプロジェクトを App Engine にデプロイする方法です。
Cloud Build の中核原則の 1 つは、各ステップで次の実行コンテキストから開始することです。
/workspace
ディレクトリのみが各ステップ間で保持されます。3 番目のステップでは、vue cli をグローバルにインストールします。つまり、現在のディレクトリ (ワークスペースのサブディレクトリ) ではなく、コンテナーのランタイム ディレクトリ (
/etc
またはその他の場所。いずれの場合も) にインストールします。 、ワークスペースの下ではありません)。global
パラメータを削除すると、ライブラリがアプリケーション ディレクトリ (/workspace
の下) にローカルにインストールされるため、インストールは後続の手順でも維持されます。