javascript - Elastic Beanstalk 和 ES6

标签 javascript amazon-elastic-beanstalk

我正在尝试在 Elastic Beanstalk 上部署我的节点服务器,但它无法正常工作,因为 Elastic Beanstalk 开箱即用支持的最新版本是 0.12.6(2015 年 7 月)。使用 io.js 或最新的节点版本 (4.1.2) 都是可行的选择,但尚不清楚如何让 beantalk 启动 ec2 实例来执行此操作。

我尝试了很多东西,包括:

  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 源代码并将其解压缩并更新引用,如 https://github.com/kopurando/better-faster-elastic-beanstalk但这似乎也不起作用(版本仍然是 0.12.6)

为什么仅仅运行最新的稳定版本的节点和已经在 AWS 上得到广泛支持 4 个月的东西如此困难?

最佳答案

您可以使用 babel 而不是使用节点 v4将 es6 代码编译为 es5 代码并将 es5 代码部署到 beanstalk。

假设您所有的源代码都在 lib 目录中,其中包含启动服务器的 index.js 文件。

lib/
    index.js
    other

然后你可以使用 babel lib -d dist 编译 lib 目录下的 es6 文件,并在 dist 目录下创建 es5 版本的文件.

dist/
    index.js
    other

然后你可以只node dist/index.js来运行你的服务器并且只需要改变package.json beanstalk因为beanstalk使用npm开始运行你的服务器

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

我喜欢为 es6 使用 babel,因为它对新特性有更多的覆盖。 您可以找到更多信息

node.js 服务器示例:https://github.com/babel/example-node-server

babel 主页:https://babeljs.io/

关于javascript - Elastic Beanstalk 和 ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981705/

相关文章:

javascript - 如何在 JavaScript 中将选项卡式树转换为 JSON?

javascript - 在元素的父元素的前一个兄弟元素上切换类

javascript - 在jQuery中用另一个div封装一组div

javascript - InputEvent 构造函数的 typeArg 参数的有效字符串是什么?

amazon-web-services - 亚马逊 AWS Elastic Beanstalk 。自定义配置文件不起作用

java - Spring mvc 不适用于 AWS elastic beanstalk

amazon-web-services - 如何在 Elastic Beanstalk 实例上修复 'Health checks failed with these codes: '?

ruby-on-rails - Rails 5 将环境变量读取为 YAML 文件中的字符串

javascript - 为什么只有一个 Node readline 对象可以工作?

amazon-ec2 - laravel 4 on beanstalk, php artisan 如何弄清楚环境