Rumah > Soal Jawab > teks badan
Saya telah membina projek menggunakan Node + Vue JS, projek itu distrukturkan dengan direktori yang berbeza untuk kod bahagian hadapan dan bahagian belakang. /api
是后端代码,有自己的package.json,而 ui
ialah kod bahagian hadapan dan juga mempunyai pakej sendiri.json. Projek ini disusun seperti berikut:
/app /api package.json /ui package.json /config cloudbuild.yaml
Saya cuba menggunakan projek ke App Engine menggunakan Cloudbuild. cloudbuild.yaml
Struktur fail adalah seperti berikut:
steps: - name: gcr.io/cloud-builders/gcloud:latest entrypoint: "ls" args: ["-lah","/workspace"] - name: node entrypoint: yarn args: ["install"] dir: "api" - name: node entrypoint: yarn args: ['global', 'add', '@vue/cli'] dir: "ui" - name: node entrypoint: yarn args: ['run', 'build'] dir: "ui" - name: "gcr.io/cloud-builders/gcloud" args: ["app", "deploy", "./app.yaml"] timeout: "1600s"
Langkah 0-2 berjaya diselesaikan, tetapi apabila membina apl Vue untuk pengeluaran, binaan gagal secara khusus yarn run build
命令。此命令在/ui
目录的package.json中被列为vue-cli-service build
.
Mesej ralat ialah /bin/sh: 1: vue-cli-service: not found
Nampaknya Cloudbuild tidak dapat mencari vue-cli, seperti tidak dipasang atau tidak tahu apa yang hendak dibina.
Soalan saya ialah bagaimana untuk menggunakan projek dengan direktori berbeza ke App Engine menggunakan Cloudbuild?
P粉7369355872024-04-01 00:43:36
Salah satu prinsip teras Cloud Build ialah bermula dengan konteks pelaksanaan seterusnya pada setiap langkah. Hanya direktori /workspace
dikekalkan antara setiap langkah.
Dalam langkah ketiga, anda memasang vue cli secara global, jadi bukan dalam direktori semasa (subdirektori ruang kerja), tetapi dalam direktori masa jalan kontena (/etc
atau di tempat lain; dalam apa jua keadaan, bukan di bawah ruang kerja) .
Jika anda mengalih keluar parameter global
, anda akan memasang pustaka secara setempat dalam direktori aplikasi (di bawah global
参数,您将在应用程序目录(/workspace
), jadi pemasangan akan berterusan dalam langkah seterusnya.