在Elastic Beanstalk上使用Yarn安装软件包

时间:2019-06-26 15:12:02

标签: node.js amazon-elastic-beanstalk yarnpkg

我想使用Yarn替代NPM在Elastic Beanstalk上安装软件包。我已经尝试过在网上找到的各种解决方案,但是它们似乎都已经过时了,不再起作用。如this gist中所述,这就是我现在拥有的。

files:
  '/opt/elasticbeanstalk/hooks/appdeploy/pre/49yarn.sh' :
    mode: '000755'
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      set -euxo pipefail

      EB_APP_STAGING_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_staging_dir)

      if node -v; then
        echo 'Node already installed.'
      else
        echo 'Installing node...'
        curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
        yum -y install nodejs
      fi

      if yarn -v; then
        echo 'Yarn already installed.'
      else
        echo 'Installing yarn...'
        wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
        yum -y install yarn
      fi

  '/opt/elasticbeanstalk/hooks/appdeploy/pre/50npm.sh' :
    mode: '000755'
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      set -euxo pipefail

      yarn install --ignore-engines

2 个答案:

答案 0 :(得分:1)

这就是我在Beanstalk上运行Yarn的用途:

commands:
  01_install_node:
    command: |
      sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
      sudo yum -y install nodejs
  02_install_yarn:
    test: '[ ! -f /usr/bin/yarn ] && echo "Yarn not found, installing..."'
    command: |
      sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
      sudo yum -y install yarn

container_commands:
  01_run_yarn:
    command: |
      yarn install
      yarn run encore production

答案 1 :(得分:0)

以上答案仅适用于 Amazon Linux (AMI) 1 版本。如果您使用的是 AMI 版本 2,您可以执行以下操作:

  1. 创建一个包含以下内容的 .platform/hooks/prebuild/yarn.sh 文件:
#!/bin/bash

# need to install node first to be able to install yarn (as at prebuild no node is present yet)
sudo curl --silent --location https://rpm.nodesource.com/setup_14.x | sudo bash -
sudo yum -y install nodejs

# install yarn
sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo
sudo yum -y install yarn

# install
cd /var/app/staging/

# debugging..
ls -lah

yarn install --prod

chown -R webapp:webapp node_modules/ || true # allow to fail
  1. 一定要chmod +x这个文件(它需要是可执行的)

https://gist.github.com/cooperka/0960c0652353923883db15b4b8fc8ba5#gistcomment-3390935