如何使用git将nuxt SSR应用程序部署到AWS Amplify

时间:2020-11-05 06:16:32

标签: amazon-web-services vue.js nuxt.js aws-amplify

我一直在尝试将nuxt SSR应用程序部署到AWS Amplify。 我的目录结构如下:

my-nuxt-app
|-.nuxt(contains view, dist etc.)
|-assets
|-components
|-layouts
|-pages
|-plugins
|-static
|-store
|-.gitignore
|-nuxt.config.js
|-package.json
|-package-lock.json
|-secrets.json(has my env configs)

我想要做的是将my-nuxt-app文件夹作为git存储库进行管理,并通过AWS Amplify部署存储库。我一直在寻找将应用程序部署到AWS的方法,但似乎没有人在完整的演练中对此进行实际描述。

我到目前为止所做的:

我尝试了amplify.yml 至 baseDirectory: dist 就像大多数说明所说的那样。 得到了'dist' not found

我尝试了amplify.yml 至 baseDirectory: .nuxt/dist 得到了 2020-11-05T06:00:05.617Z [ERROR]: !!! Build failed 2020-11-05T06:00:05.617Z [ERROR]: !!! Non-Zero Exit Code detected

我尝试更改buildDir并将其设置为单独的git repo。 (将package.json手动复制到该文件夹​​中) 它构建良好并得到确认,但URL会显示502错误页面

The Lambda function result failed validation: The function tried to add, delete, or change a read-only header. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.

我不知道自己缺少什么,以及如何正确使用git管理nuxt项目。

2 个答案:

答案 0 :(得分:0)

我正在使用Amplify Console,并将其配置为指向Bitbucket git存储库中的特定分支。

我遇到了与上述相同的错误。

解决方案是转到Amplify Console中的Amplify Settings-> Build Settings,然后编辑amplify.yml“ App build specification”,如下所示。 具体更改为:

  • 将build命令更改为“ yarn generate”,其中package.json中将“ generate”定义为“ nuxt generate”。
  • 将baseDirectory更改为dist /,这是纱线生成的目标输出目录。

请注意,我使用的是yarn(不是npm),我的目标是SPA(但它也适用于SSR)。

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - yarn install
    build:
      commands:
        - yarn generate
  artifacts:
    # IMPORTANT - Please verify your build output directory
    baseDirectory: dist/
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

答案 1 :(得分:0)

我能够使用npm进行部署:

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm install
    build:
      commands:
        - npm run generate
  artifacts:
    # IMPORTANT - Please verify your build output directory
    baseDirectory: dist
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*