如何在Google App Engine上部署Vue.js应用程序?

时间:2019-03-20 12:19:37

标签: google-app-engine vue.js

我创建了一个简单的Vue.js应用程序。然后我创建了一个用于生产的构建 npm run build命令,在项目结构中创建dist文件夹。

然后我使用gcloud app deploy命令将其部署到Google App Engine,但是部署停止并显示错误消息:

ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: This deployment has too many files. New versions are limited to 10000 files for this app.

有人可以告诉我将Vue.js应用程序部署到Google App Engine的正确方法是什么吗?

4 个答案:

答案 0 :(得分:2)

您是否尝试过使用Cloud Build将Vue.js应用部署到Google App Engine?我以这种方式部署任何Vue.js应用程序都没有问题。尝试按照complete instructions.

的本教程进行操作

基本上,在通过Cloud Build将Vue.js应用部署到Google App Engine时,您必须在项目根目录中包含以下两个文件:

  1. App.yaml

runtime: nodejs10
handlers:
  # Serve all static files with urls ending with a file extension
- url: /(.*\..+)$ 
  static_files: dist/\1
  upload: dist/(.*\..+)$
  # catch all handler to index.html
- url: /.*
  static_files: dist/index.html
  upload: dist/index.html

  1. cloudbuild.yaml

steps:
- name: node:10.15.1
  entrypoint: npm
  args: ["install"]
- name: node:10.15.1
  entrypoint: npm
  args: ["run", "build"]
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy"]
timeout: "1600s"

如果您不使用云构建,则可以使用上面的app.yaml并引用cloudbuild.yaml中隐含的步骤,这意味着:

  1. 运行npm install
  2. 运行npm run build
  3. 运行gcloud app deploy

答案 1 :(得分:1)

项目中文件太多。 在您的app.yaml文件中,添加skip_files标记,以便部署不会在上传文件中包含不必要的文件或文件夹。您还可以将其与正则表达式混合使用,例如:

skip_files:
- node_modules/
- .gitignore
- src/
- public/
- babel.config.js
- ^(.*/)?\..*$

答案 2 :(得分:0)

我发现了一些Google Cloud Platform文档,这些文档可能会对您的问题有所帮助,在此link的“部署”部分下,它表明,对于每个部署,每个版本只能上传10,000个文件,并且每个文件限制为一个最大大小为32 MB。您遇到了这两个问题之一,建议您在您的应用中检查一下,然后尝试再次部署。

答案 3 :(得分:0)

如果您不想在 SSL 证书的 namecheap 上浪费 10 美元和您的时间(像我一样),您可能希望为每个处理程序添加 secure: always 选项。

- url: /.*
  static_files: dist/index.html
  upload: dist/index.html
  secure: always

喜欢!不过,前提是您使用的是自定义域。