【问题标题】:Compile less files and minify js files in node.js project on AWS Elastic Beanstalk在 AWS Elastic Beanstalk 上的 node.js 项目中编译更少的文件并缩小 js 文件
【发布时间】:2014-02-10 09:11:46
【问题描述】:

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

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

【问题讨论】:

  • 对此进行了一些研究。看起来这样做的一种方法是修改默认节点命令:在 eb 配置中为“npm start”,然后在 package.json 中添加一个预启动脚本以运行例如一个繁重的构建任务
  • 如果可行,您可以将其发布为答案吗?

标签: node.js amazon-web-services gruntjs amazon-elastic-beanstalk


【解决方案1】:

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

.ebextensions/grunt.config 这样的 ebextensions 挂钩中,您可以执行以下操作:

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_commands 在你的仓库的主目录中执行,所以你的 grunt 构建的“源”文件应该可以从那里获得。

再次 - 我不使用 grunt 并且无法判断这是否真的有效,但我希望它无论如何都会有所帮助。

【讨论】:

  • 在日志中返回错误“构建期间发生错误:02-install-grunt 未指定 'command' 属性,这是必需的。”
  • 你说得对,谢谢!我忘了在 02-install-grunt 中添加 command: 部分。刚刚更新了代码。正如答案中所说,这是未经测试的代码,更多地被认为是一个起点......我希望它现在可以工作。
猜你喜欢
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
  • 2012-07-05
  • 2021-12-30
  • 2015-04-06
  • 2020-08-07
相关资源
最近更新 更多