在 Elastic Beanstalk 中部署完成之前,在 git 子模块中运行“npm install”

在 Elastic Beanstalk 中部署完成之前,在 git 子模块中运行“npm install”

我的 Node.js 项目有一些 git 子模块(这是目前无法轻易更改的,所以我不能使用像 npm 这样的包注册表)

虽然 EB 会自动初始化并更新子模块,但我需要npm install在每个子模块中运行它们才能使它们正常工作。

推荐的做法是什么?

我读过一些关于prestart在我的中添加脚本的内容package.json,例如:

"prestart" : "git submodule foreach npm install"

但这感觉不对。

我已经有一些脚本.ebextensions,但我不确定应该把这些脚本放在哪个位置。

答案1

在 AWS 支持人员的帮助下,我找到了答案。

00custom_npm.config在我的文件中添加了一个名为.ebextensions以下内​​容:

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/pre/51_submodules_install_dependencies.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #! /bin/bash
      EB_APP_STAGING_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_staging_dir)
      cd $EB_APP_STAGING_DIR/<submodule-name> && /opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/bin/npm install

我需要为每个模块手动执行此操作。就我而言,因为只有一个模块,所以很容易。

相关内容