Guides
Rails
Javascript
Additional details
Deployment
React on rails pro
Api
Misc
Contributor info
Testimonials
Outdated
Shakacode logoShakaCodeDeveloped by

Copyright 2020 ShakaCode

Heroku Deployment

Heroku buildpacks

React on Rails requires both a ruby environment (for Rails) and a Node environment (for Webpack), so you will need to have Heroku use multiple buildpacks.

Assuming you have downloaded and installed the Heroku command-line utility and have initialized the app, you will need to tell Heroku to use both buildpacks via the command-line:

heroku buildpacks:set heroku/ruby
heroku buildpacks:add --index 1 heroku/nodejs

For more information, see Using Multiple Buildpacks for an App

assets:precompile

Shakapacker webpack configuration

Shakapacker hooks up a new shakapacker:compile task to assets:precompile, which gets run whenever you run assets:precompile. If you are not using Sprockets, shakapacker:compile is automatically aliased to assets:precompile.

If you're using the standard shakacode/shakapacker configuration of webpack, then shakacode/shakapacker will automatically modify or create an assets:precompile task to build your assets.

Alternatively, you can specify config.build_production_command to have react_on_rails invoke a command for you during assets:precompile.

config.build_production_command = "RAILS_ENV=production NODE_ENV=production bin/shakapacker"

Consider Removing Shakapacker's clean task

If you are deploying on Heroku, then you don't need Shakapacker's clean task which might delete files that you need.

Rake::Task['shakapacker:clean'].clear