hyperstack-org/hyperstack

Can't deploy to Heroku and other places

Open

#227 创建于 2019年8月18日

在 GitHub 查看
 (1 评论) (0 反应) (0 负责人)JavaScript (531 star) (43 fork)batch import
buggood first issue

描述

Problem is that webpacker enhances rake assets:precompile to build the assets first, then builds the packs.

This doesn't work as Hyperstack references the packs from the application.js (via the hyperstack-loader.js file.) So the application.js file will not reference the packs.

The solution is to build the packs first, by adding the following lines the Rakefile in the application root directory:

puts "Warning: Hyperstack is running yarn install and webpacker:compile BEFORE assets:precompile"
# determine if we should use built in yarn:install or use webpacker:yarn_install
yarn_installer = (Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR == 0) ? 'webpacker:yarn_install' : 'yarn:install'
# install yarn and compile packs BEFORE assets:precompile
Rake::Task["assets:precompile"].enhance([yarn_installer, 'webpacker:compile'])

Note: If you are patching an existing system, and you are already on Rails 5.1 or newer you can simplify the above to a single line: Rake::Task["assets:precompile"].enhance(['yarn:install', 'webpacker:compile'])

The above should be added to the hyperstack-rails configuration script (if webpack is being installed.)

Because there might be unknown side effects to this, this should be done as a patch (i.e. like the above) rather than sticking it a rake file in the hyperstack-rails lib directory for example.

https://github.com/rails/webpacker/issues/2237 has been raised on the rails webpacker gem. Hopefully the Rails team can accept this reversal in ordering, in which case the whole problem goes away.

贡献者指南