在 Elastic Beanstalk 上使用 Yarn 安装包

Ben*_*ick 7 node.js amazon-elastic-beanstalk yarnpkg

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

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
Run Code Online (Sandbox Code Playgroud)

小智 7

这是我用来在 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
Run Code Online (Sandbox Code Playgroud)


idr*_*fer 6

上述答案仅适用于 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
Run Code Online (Sandbox Code Playgroud)
  1. 确保 chmod +x 该文件(它必须是可执行的)

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