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

- old
+ new

@@ -1,24 +1,39 @@ # frozen_string_literal: true +# Important: The default assets:precompile is modified ONLY if the rails/webpacker webpack config +# does not exist! + require "active_support" -if Rake::Task.task_defined?("assets:precompile") - Rake::Task["assets:precompile"].enhance do - Rake::Task["react_on_rails:assets:webpack"].invoke +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) + 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 + end + else + Rake::Task.define_task("assets:precompile" => ["react_on_rails:assets:webpack"]) end -else - Rake::Task.define_task("assets:precompile" => ["react_on_rails:assets:webpack"]) end # 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. 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