在 AWS elastic beanstalk 上部署 rails 带有 webpacker gem 的 React 应用程序
Deploy rails react app with webpacker gem on AWS elastic beanstalk
我正在尝试使用 AWS Elastic Beanstalk 部署一个 rails 5.1 & React 应用程序,该应用程序使用 webpacker gem 创建。问题是我不断收到以下错误:
Webpacker requires Node.js >= 6.0.0 and you are using 4.6.0
我在我的电脑上使用 Node 9.5.0。有什么建议吗??
使用 yum 安装 nodejs(假设您使用的是默认的 Amazon Linux)
https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
yum -y install nodejs
现在要在您的实例上执行此操作,您需要将所需的命令添加到 .ebextensions
目录中的配置文件中,例如:.ebextensions/01_install_dependencies.config
文件内容:
commands:
01_download_nodejs:
command: curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
02_install_nodejs:
command: yum -y install nodejs
对于那些 运行 还需要安装 Yarn 的人,我发现下面的方法对我有用:
commands:
01_install_yarn:
command: "sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo && curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash - && sudo yum install yarn -y"
02_download_nodejs:
command: curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
03_install_nodejs:
command: yum -y install nodejs
对于那些在升级到 Rails 6 时发现此问题的人,I wrote a post 如何修复它。
基本上,您必须:
- 在应用程序的顶层创建目录 .ebextensions
- 创建 .config 文件,其中包含修复部署的命令(此处为脚本)
- 添加将nodejs升级到>=6.14.4的命令
- 添加容器命令以安装 webpack 和预编译资产
- 通过弹性 beantalk 禁用资产构建
- 设置 RAILS_SKIP_ASSET_COMPILATION 为 True
等于:
commands:
01_install_yarn:
command: "sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo && curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash - && sudo yum install yarn -y"
02_download_nodejs:
command: curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
03_install_nodejs:
command: yum -y install nodejs
container_commands:
04_install_webpack:
command: npm install --save-dev webpack
05_precompile:
command: bundle exec rake assets:precompile
我正在尝试使用 AWS Elastic Beanstalk 部署一个 rails 5.1 & React 应用程序,该应用程序使用 webpacker gem 创建。问题是我不断收到以下错误:
Webpacker requires Node.js >= 6.0.0 and you are using 4.6.0
我在我的电脑上使用 Node 9.5.0。有什么建议吗??
使用 yum 安装 nodejs(假设您使用的是默认的 Amazon Linux)
https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
yum -y install nodejs
现在要在您的实例上执行此操作,您需要将所需的命令添加到 .ebextensions
目录中的配置文件中,例如:.ebextensions/01_install_dependencies.config
文件内容:
commands:
01_download_nodejs:
command: curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
02_install_nodejs:
command: yum -y install nodejs
对于那些 运行 还需要安装 Yarn 的人,我发现下面的方法对我有用:
commands:
01_install_yarn:
command: "sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo && curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash - && sudo yum install yarn -y"
02_download_nodejs:
command: curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
03_install_nodejs:
command: yum -y install nodejs
对于那些在升级到 Rails 6 时发现此问题的人,I wrote a post 如何修复它。
基本上,您必须:
- 在应用程序的顶层创建目录 .ebextensions
- 创建 .config 文件,其中包含修复部署的命令(此处为脚本)
- 添加将nodejs升级到>=6.14.4的命令
- 添加容器命令以安装 webpack 和预编译资产
- 通过弹性 beantalk 禁用资产构建
- 设置 RAILS_SKIP_ASSET_COMPILATION 为 True
等于:
commands:
01_install_yarn:
command: "sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo && curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash - && sudo yum install yarn -y"
02_download_nodejs:
command: curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
03_install_nodejs:
command: yum -y install nodejs
container_commands:
04_install_webpack:
command: npm install --save-dev webpack
05_precompile:
command: bundle exec rake assets:precompile