lib/tasks/assets.rake in react_on_rails-12.0.0.pre.beta.2 vs lib/tasks/assets.rake in react_on_rails-12.0.0.pre.beta.3

- old
+ new

@@ -5,14 +5,12 @@ require "active_support" ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development" ENV["NODE_ENV"] ||= "development" -webpacker_webpack_config_abs_path = File.join(Rails.root, "config/webpack/#{ENV["NODE_ENV"]}.js") -webpack_config_path = Pathname.new(webpacker_webpack_config_abs_path).relative_path_from(Rails.root).to_s -unless File.exists?(webpacker_webpack_config_abs_path) +unless ReactOnRails::WebpackerUtils.webpacker_webpack_production_config_exists? if Rake::Task.task_defined?("assets:precompile") Rake::Task["assets:precompile"].enhance do Rake::Task["react_on_rails:assets:webpack"].invoke puts "Invoking task wepacker:clean from React on Rails" Rake::Task["webpacker:clean"].invoke @@ -24,22 +22,31 @@ # Sprockets independent tasks namespace :react_on_rails do namespace :assets do desc <<-DESC.strip_heredoc - Compile assets with webpack - Uses command defined with ReactOnRails.configuration.build_production_command - - sh "#{ReactOnRails::Utils.prepend_cd_node_modules_directory('<ReactOnRails.configuration.build_production_command>')}" - - Note: This command is not automatically added to assets:precompile if the rails/webpacker - configuration file #{webpack_config_path} exists. + Compile assets with webpack + Uses command defined with ReactOnRails.configuration.build_production_command + sh "#{ReactOnRails::Utils.prepend_cd_node_modules_directory('<ReactOnRails.configuration.build_production_command>')}" + Note: This command is not automatically added to assets:precompile if the rails/webpacker + configuration file config/webpack/production.js exists. DESC task webpack: :locale do if ReactOnRails.configuration.build_production_command.present? sh ReactOnRails::Utils.prepend_cd_node_modules_directory( ReactOnRails.configuration.build_production_command ).to_s + else + msg = <<~MSG + React on Rails is aborting webpack compilation from task react_on_rails:assets:webpack + because you do not have the `config.build_production_command` defined. + + Note, this task may have run as part of `assets:precompile`. If file + config/webpack/production.js does not exist, React on Rails will modify + the default `asset:precompile` to run task `react_on_rails:assets:webpack`. + MSG + puts Rainbow(msg).red + exit!(1) end end end end