#npm #amazon-ec2 #amazon-elastic-beanstalk #nestjs
#npm #amazon-ec2 #amazon-elastic-beanstalk #nestjs
Вопрос:
Я развертываю приложение NestJS на elastic beanstalk, после успешного развертывания приложение не запускается и показывает ошибку при запуске скрипта, но когда я вхожу в экземпляр Amazon Linux 2 ec2 и запускаю node dist / main, оно запускается, а не иначе, с запуском npm.
Журналы:
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli '/opt/elasticbeanstalk/node-install/node-v12.19.0-linux-x64/bin/node',
1 verbose cli '/bin/npm',
1 verbose cli 'start'
1 verbose cli ]
2 info using npm@6.14.8
3 info using node@v12.19.0
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle unmudl-backend-app@0.0.1~prestart: unmudl-backend-app@0.0.1
6 info lifecycle unmudl-backend-app@0.0.1~start: unmudl-backend-app@0.0.1
7 verbose lifecycle unmudl-backend-app@0.0.1~start: unsafe-perm in lifecycle true
8 verbose lifecycle unmudl-backend-app@0.0.1~start: PATH: /opt/elasticbeanstalk/node-install/node-v12.19.0-linux-x64/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/var/app/current/node_modules/.bin:/sbin:/bin:/usr/sbin:/usr/bin
9 verbose lifecycle unmudl-backend-app@0.0.1~start: CWD: /var/app/current
10 silly lifecycle unmudl-backend-app@0.0.1~start: Args: [ '-c', 'nest start' ]
11 silly lifecycle unmudl-backend-app@0.0.1~start: Returned: code: 1 signal: null
12 info lifecycle unmudl-backend-app@0.0.1~start: Failed to exec start script
13 verbose stack Error: unmudl-backend-app@0.0.1 start: `nest start`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (/opt/elasticbeanstalk/node-install/node-v12.19.0-linux-x64/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:314:20)
13 verbose stack at ChildProcess.<anonymous> (/opt/elasticbeanstalk/node-install/node-v12.19.0-linux-x64/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:314:20)
13 verbose stack at maybeClose (internal/child_process.js:1021:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
14 verbose pkgid unmudl-backend-app@0.0.1
15 verbose cwd /var/app/current
16 verbose Linux 4.14.200-155.322.amzn2.x86_64
17 verbose argv "/opt/elasticbeanstalk/node-install/node-v12.19.0-linux-x64/bin/node" "/bin/npm" "start"
18 verbose node v12.19.0
19 verbose npm v6.14.8
20 error code ELIFECYCLE
21 error errno 1
22 error unmudl-backend-app@0.0.1 start: `nest start`
22 error Exit status 1
23 error Failed at the unmudl-backend-app@0.0.1 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
Комментарии:
1. Здесь не так много информации о том, что может происходить. Вы хотите использовать Nest CLI для запуска сервера? Если да, то был ли он установлен?
2. да, установлен nest cli, я хочу запустить с npm start, но он показывает ошибку с этой командой, но она успешно выполнена с node dist / main, в чем проблема?
3. @JayMcDoniel мой сценарий запуска в package.json — это nest start, но он показывает ошибки в модулях узлов с помощью этой команды, но выполняется с node dist / main
4. Все, что я могу предположить, это то, что вы также не создали сервер. Приведенное выше на самом деле мало что говорит, кроме того, что оно не может быть запущено
nest start
, и возникает некоторая ошибка из-заEventEmitter
5. Значит, это проблема с кодом?
Ответ №1:
Вам нужно изменить значение вашего "start"
in package.json на "npm i -g @nestjs/cli amp;amp; node dist/main"
это должно выглядеть как следующая строка:
«start»: «npm i -g @nestjs / cli amp;amp; node dist /main»
и если вы используете prisma, вам нужно будет сделать это следующим образом:
«start»: «npm i -g @prisma / cli @nestjs / cli amp;amp; prisma генерирует amp;amp; node dist / main»