From 98a3644be00cb8778e418ab6391bb16baf9aa99b Mon Sep 17 00:00:00 2001 From: Vinicius Stock Date: Sun, 17 May 2020 13:51:32 -0400 Subject: [PATCH] Create update yarn task (#39314) * Use app:binstub:yarn in Action Text install generator --- .../action_text/install/install_generator.rb | 4 ++-- .../rails/generators/rails/app/app_generator.rb | 15 +++++++++++++++ railties/lib/rails/tasks/framework.rake | 6 ++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/actiontext/lib/generators/action_text/install/install_generator.rb b/actiontext/lib/generators/action_text/install/install_generator.rb index 1140c3165f..f87b278dc3 100644 --- a/actiontext/lib/generators/action_text/install/install_generator.rb +++ b/actiontext/lib/generators/action_text/install/install_generator.rb @@ -9,10 +9,10 @@ module ActionText source_root File.expand_path("templates", __dir__) def install_javascript_dependencies - rails_command "app:update:bin", inline: true + rails_command "app:binstub:yarn", inline: true say "Installing JavaScript dependencies", :green - run "yarn add #{js_dependencies.map { |name, version| "#{name}@#{version}" }.join(" ")}", + run "bin/yarn add #{js_dependencies.map { |name, version| "#{name}@#{version}" }.join(" ")}", abort_on_failure: true, capture: true end diff --git a/railties/lib/rails/generators/rails/app/app_generator.rb b/railties/lib/rails/generators/rails/app/app_generator.rb index e5c074c514..b49d4045f6 100644 --- a/railties/lib/rails/generators/rails/app/app_generator.rb +++ b/railties/lib/rails/generators/rails/app/app_generator.rb @@ -100,6 +100,16 @@ module Rails end end + def yarn_when_updating + return if File.exist?("bin/yarn") + + template "bin/yarn" do |content| + "#{shebang}\n" + content + end + + chmod "bin", 0755 & ~File.umask, verbose: false + end + def config empty_directory "config" @@ -314,6 +324,11 @@ module Rails end remove_task :update_bin_files + def update_bin_yarn + build(:yarn_when_updating) + end + remove_task :update_bin_yarn + def update_active_storage unless skip_active_storage? rails_command "active_storage:update", inline: true diff --git a/railties/lib/rails/tasks/framework.rake b/railties/lib/rails/tasks/framework.rake index c0f19fcfe5..e712e9b99f 100644 --- a/railties/lib/rails/tasks/framework.rake +++ b/railties/lib/rails/tasks/framework.rake @@ -59,4 +59,10 @@ namespace :app do Rails::AppUpdater.invoke_from_app_generator :display_upgrade_guide_info end end + + namespace :binstub do + task :yarn do + Rails::AppUpdater.invoke_from_app_generator :update_bin_yarn + end + end end