在AWS Elastic Beanstalk上的node.js项目中编译较少的文件并缩小js文件

在AWS Elastic Beanstalk上的node.js项目中编译较少的文件并缩小js文件,node.js,amazon-web-services,gruntjs,amazon-elastic-beanstalk,Node.js,Amazon Web Services,Gruntjs,Amazon Elastic Beanstalk,我正在使用Eb命令行界面将node.js项目部署到AWS Elastic Beanstalk。我使用git进行版本控制。因此,我运行的部署命令只是“git aws.push”。 在本地,我使用grunt从较少的文件编译css文件,并缩小和cmobine js文件 我不想在git存储库中包含*.min.css文件或*.min.js文件,而是希望在部署后在AWS上重新编译它们。 有办法做到这一点吗?可能是使用.ebextensions钩子或其他什么?我不熟悉grunt,但我想您需要做的是在elast

我正在使用Eb命令行界面将node.js项目部署到AWS Elastic Beanstalk。我使用git进行版本控制。因此,我运行的部署命令只是“git aws.push”。 在本地,我使用grunt从较少的文件编译css文件,并缩小和cmobine js文件

我不想在git存储库中包含*.min.css文件或*.min.js文件,而是希望在部署后在AWS上重新编译它们。
有办法做到这一点吗?可能是使用.ebextensions钩子或其他什么?

我不熟悉grunt,但我想您需要做的是在elastic beanstalk上安装nodejs和grunt,然后在设置容器后运行grunt命令

在ebextensions钩子中,例如
.ebextensions/grunt.config
可以执行以下操作:

commands:
  01-install-nodejs-npm:
    command: "yum install -y --enablerepo=epel nodejs npm"
  02-install-grunt:
    command: "npm install -g grunt-cli"

container_commands:
  01-compilecss-minifyjs:
    command: "grunt build mytask"
    leader_only: true
这些命令将确保安装了nodejs、npm和grunt。container_命令是从存储库的主目录中执行的,因此grunt构建的“源”文件应该可以从那里获得


再一次-我不与grunt合作,也不知道这是否真的有效,但我希望它能有所帮助。

对此做了一些研究。这样做的一种方法似乎是修改默认节点命令:在eb配置中,将“npm start”修改为“npm start”,然后在package.json中添加一个预启动脚本,以运行例如grunt构建任务。如果可以,您可以将其作为答案发布吗?在日志中返回错误“生成过程中发生错误:02 install grunt没有指定必需的'command'属性。”你说得对,谢谢!我忘记在02 install grunt中添加
命令:
部分。刚刚更新了代码。正如回答中所说,这是未经测试的代码,更多的人认为这是一个起点……我希望它现在可以工作。