Кодовое развертывание приложения React на EC2 не работает должным образом

#node.js #jenkins #amazon-ec2 #aws-codebuild #react-scripts

#node.js #дженкинс #amazon-ec2 #aws-codebuild #реагирующие скрипты

Вопрос:

Я действительно изо всех сил пытаюсь развернуть приложение React на EC2 с помощью Jenkins amp; AWS CodeDeploy. Каждый раз, когда я начинаю развертывать код, я получаю следующую ошибку:

 
    [stdout]> react-scripts start
    [stdout]
    [stderr]node:internal/modules/cjs/loader:922
    [stderr] throw err;
    [stderr] ^
    [stderr]
    [stderr]Error: Cannot find module '../scripts/start'
    [stderr]Require stack:
    [stderr]- /vclms/frontend/node_modules/.bin/react-scripts
    [stderr] at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:15)
    [stderr] at Function.resolve (node:internal/modules/cjs/helpers:98:19)
    [stderr] at Object.<anonymous> (/vclms/frontend/node_modules/.bin/react-scripts:31:23)
    [stderr] at Module._compile (node:internal/modules/cjs/loader:1102:14)
    [stderr] at Object.Module._extensions..js (node:internal/modules/cjs/loader:1131:10)
    [stderr] at Module.load (node:internal/modules/cjs/loader:967:32)
    [stderr] at Function.Module._load (node:internal/modules/cjs/loader:807:14)
    [stderr] at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    [stderr] at node:internal/main/run_main_module:17:47 {
    [stderr] code: 'MODULE_NOT_FOUND',
    [stderr] requireStack: [ '/vclms/frontend/node_modules/.bin/react-scripts' ]
    [stderr]}
    [stderr]npm ERR! code ELIFECYCLE
    [stderr]npm ERR! errno 1
    [stderr]npm ERR! frontend@0.1.0 start: `react-scripts start`
    [stderr]npm ERR! Exit status 1
    [stderr]npm ERR!
    [stderr]npm ERR! Failed at the frontend@0.1.0 start script.
    [stderr]npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    [stderr]
    [stderr]npm ERR! A complete log of this run can be found in:
    [stderr]npm ERR! /home/ec2-user/.npm/_logs/2020-11-23T22_40_49_472Z-debug.log

 

Мой Appspec.yml выглядит так:

     version: 0.0
    os: linux
    files:
      - source: /
        destination: /vclms/frontend
    hooks:
      BeforeInstall:
       - location: scripts/setup.sh
         runas: ec2-user
      ApplicationStart:
        - location: scripts/start.sh
          timeout: 300
          runas: ec2-user
 

Setup.sh выглядит примерно так:

 #!/bin/bash

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
 export NVM_DIR="$HOME/.nvm"
 [ -s "$NVM_DIR/nvm.sh" ] amp;amp; . "$NVM_DIR/nvm.sh"
 nvm install node
 nvm install-latest-npm
 

И start.sh вот так:

 #!/bin/bash

#backend start
# python vclms/backend/manage.py runserver 2>amp;1 amp;

#frontend start
whoami
whereis node
which node
whereis npm
which npm

cd /vclms/frontend

npm start
 

Кстати: файл node_modules/.bin/react-scripts существует.

Есть идеи, что здесь не работает? Я понятия не имею, куда смотреть после нескольких часов поиска…

С наилучшими пожеланиями, Макс

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

1. Вы пробовали удалять node_modules и запускать заново npm i ?