Next.js приложение успешно развертывается на Vercel, но не работает на Amplify

#reactjs #next.js #aws-amplify #vercel #node-pre-gyp

Вопрос:

В настоящее время я пытаюсь разместить свой next.js приложение на AWS усиливается, но каждый раз оно выходит из строя. Я использую конвейер Git CI/CD. Когда одно и то же приложение развертывается на Vercel, оно развертывается всего за 60 секунд и работает. Вот ошибка, которую я получаю:

 Starting SSR Build...
2021-07-15T17:21:36.050Z [ERROR]: Error: 'Command failed with exit code 1: node_modules/.bin/next build',
                                  command: 'node_modules/.bin/next build',
                                  exitCode: 1,
                                  signal: undefined,
                                  signalDescription: undefined,
                                  stdout: 'info  - Using webpack 5. Reason: Enabled by default https://nextjs.org/docs/messages/webpack5n'  
                                  'info  - Checking validity of types...n'  
                                  'info  - Creating an optimized production build...',
                                  stderr: 'Failed to compile.n'  
                                  'n'  
                                  "ModuleNotFoundError: Module not found: Error: Can't resolve 'mock-aws-s3' in '/<project_location>/node_modules/@mapbox/node-pre-gyp/lib/util'n"  
                                  'n'  
                                  'n'  
                                  '> Build error occurredn'  
                                  'Error: > Build failed because of webpack errorsn'  
                                  '    at /<project_location>/node_modules/next/dist/build/index.js:15:924n'  
                                  '    at async Span.traceAsyncFn (/<project_location>/node_modules/next/dist/telemetry/trace/trace.js:6:584)',
                                  failed: true,
                                  timedOut: false,
                                  isCanceled: false,
Terminating logging...

 

Изменить:
Вот файл package.json

 {
  "name": "laturnaorders",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  },
  "dependencies": {
    "axios": "^0.21.1",
    "bcrypt": "^5.0.1",
    "bootstrap": "5.0.2",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^5.13.2",
    "next": "11.0.1",
    "next-connect": "^0.10.1",
    "react": "17.0.2",
    "react-bootstrap": "^2.0.0-beta.2",
    "react-dom": "17.0.2",
    "react-select": "^4.3.1",
    "sass": "^1.35.2"
  },
  "devDependencies": {
    "eslint": "7.30.0",
    "eslint-config-next": "11.0.1"
  }
}
 

Правка 2:
Я посмотрел его, и кажется, что mock-aws-s3 это зависимость от @mapbox/node-pre-gyp пакета, которая сама по себе является зависимостью bcrypt.js .
Имеет ли это какое-то отношение к версии узла? В настоящее время я использую node v16.4.0

Комментарии:

1. Можете ли вы предоставить свой package.json файл?

Ответ №1:

В настоящее время хостинг Amplify поддерживает все Next.js функции в версии 9.x.x, включая маршруты SSR API, динамические страницы и автоматический предварительный рендеринг.

Пожалуйста, проверьте свою версию, если у вас возникли ошибки сборки или 503-е на страницах SSR. В некоторых ситуациях понижение до версии 10.2 поможет устранить эти ошибки.

https://aws.amazon.com/about-aws/whats-new/2021/05/aws-amplify-hosting-announces-server-side-rendering-support-for-next-js-web-apps/


Редактировать:

Поддержка текущей версии описана здесь — https://docs.aws.amazon.com/amplify/latest/userguide/server-side-rendering-amplify.html#ssr-Amplify-support

Комментарии:

1. Я попытался вернуться к версии 10.2, но проблема все еще сохраняется. Раньше я был доволен Верселем, но нуждался в некоторых дополнительных функциях. Итак, я попытался переключиться обратно, но это не сработало.

2. Есть какие-нибудь успехи в решении этой проблемы?