在ElasticBeanstalk上运行Grunt

lea*_*rrr 8 amazon-ec2 amazon-web-services node.js amazon-elastic-beanstalk

我有一个节点应用程序,需要grunt进行"构建"才能成功执行应用程序.(运行concat/minification/reving源代码等).我已经在具有SSH访问权限的EC2实例上运行,因为我可以通过SSH连接到目录并在部署过程中运行Grunt.但是要自动执行此操作,我现在将应用程序移动到ElasticBeanstalk,并且我很难让应用程序成功运行grunt.迁移到EB的原因是保持SSH密钥关闭实时服务器,因此这些EB实例设置为没有ssh访问.

似乎没有可用的官方文件,是否有人能指出我能够实现上述目标的良好方向?我需要在应用程序启动之前执行grunt,以便应用程序具有可用的文件(否则将有404).

use*_*654 12

运行grunt与运行gulp非常相似,所以,我将在下面包含我的配置.

这是在项目根目录下的.ebextensions文件夹中,名为01run.config.您可以拥有多个配置文件,它们将按字母顺序运行(因此开头为01).

这基本上只是指示进程按顺序运行这些命令,同样,它按字母顺序完成,所以我相应地命名它们.

commands:
  01get_sudo:
    command: echo Defaults:root \!requiretty >> /etc/sudoers
  02npm_install:
    command: sudo yum -y --enablerepo=epel install nodejs npm
  03npm_install_bower:
    command: sudo npm install -g bower
  04npm_install_gulp:
    command: sudo npm install -g gulp
  05yum_install_git:
    command: sudo yum -y --enablerepo=epel install git
container_commands:
  01bower_install:
    command: sudo bower install --allow-root
  02gulp_sass:
    command: sudo gulp sass
Run Code Online (Sandbox Code Playgroud)
  1. 获得sudo访问权限
  2. 用yum安装node.js和npm
  3. 安装凉亭(我的gulp过程需要凉亭)
  4. 安装gulp
  5. 安装git(凉亭需要)
  6. 然后我运行两个容器命令,这些命令发生在npm install之后和npm start之前:
    1. 凉亭安装
    2. gulp sass

在你的情况下,你只需删除bower和git安装,安装grunt-cli,然后运行grunt.


由于这样做,我在部署并将构建的文件提交到git存储库之前,先完成了所有操作,因此无需执行上述过程.这至少是一个很好的学习经验,让我可以更好地控制beanstalk部署的ec2实例.