3

Я пытаюсь развернуть мой узел на Elastic Beanstalk, но это не сработает, потому что последняя версия Edastic Beanstalk поддерживает из коробки 0.12.6 (июль 2015). Использование либо io.js, либо последней версии узла (4.1.2) являются жизнеспособными опциями, но неясно, как это сделать, чтобы экземпляры ec2 были развернуты beanstalk для этого.Эластичный бобовый шток и ES6

Я попытался кучу вещей, в том числе:

  1. добавив 4.1.2 источник в мой .ebextensions конфигурационный файл, а затем обновить ссылку в /tmp/deployment/config/#etc#init#nodejs.conf но console.log(process.argv) был еще 0.12.6. Более того, во второй раз я запускаю это, я получаю ошибку text file busy, предположительно потому, что он пытается изменить источник пакета узла, пока узел все еще работает ... (см. https://forums.aws.amazon.com/thread.jspa?threadID=169385)
  2. добавление файла, который загружает 4.1.2 источник и ungzips его и обновляет ссылку, как в https://github.com/kopurando/better-faster-elastic-beanstalk, но это, похоже, не работает, либо (версия до сих пор 0.12.6)

Почему это так трудно просто запустить последнюю стабильную версию узла и то, что получила поддержку в течение 4 месяцев на AWS?

ответ

0

Одним из вариантов является создание пользовательских AMI (Amazon Machine Image) и использовать его для развертывания приложения:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.customenv.html

Там в кучу шагов в их документации, но в простых условиях, что вам нужно:

  1. раскрутить сервер
  2. настроить установки, однако вы хотите
  3. создать изображение
  4. создать упругую среду Beanstalk с помощью вновь созданного AMI

Другим вариантом, если вы хотите запустить узел с функциями, ES2015 является использование babel cli.

Вам нужно добавить start задачу к вашему package.json:

{ 
    "scripts": { 
    "start": "babel-node index.js", 
    }, 
    "dependencies": { 
    "babel": "^5.8.23", 
    } 
} 

Однако ...

Не предназначен для использования в производстве

Вы не должны использовать Babel-узел в производстве. Это излишне тяжело, с высоким использованием памяти из-за того, что кеш хранится в памяти. Вы также всегда будете испытывать штраф за запуск, поскольку все приложение должно быть скомпилировано «на лету».

4

Вместо использования узла v4 вы можете использовать babel, чтобы скомпилировать код es6 в код es5 и развернуть код es5 на beanstalk.

Предположим, что все ваши исходные коды находятся в каталоге lib с файлом index.js, который запускает сервер.

lib/ 
    index.js 
    other 

Затем вы можете использовать babel lib -d dist скомпилировать ES6 файлы в каталоге lib и создать ES5 версию файлов в dist каталоге.

dist/ 
    index.js 
    other 

Тогда вы можете просто node dist/index.js запустить свой сервер и нужно только изменить package.json, как показано ниже на бобовый стебель, так как Beanstalk использует npm start запустить ваш сервер

"scripts": { 
    "start": "node dist/index.js" 
} 

мне нравится использовать столпотворение для ES6 поскольку оно имеет больше возможностей для новых функций. Вы можете найти более подробную информацию

node.js Пример сервера: https://github.com/babel/example-node-server

столпотворение Домашняя страница: https://babeljs.io/

Смежные вопросы