From 8e9186d241f24fe01a96a321900a182bc581c24e Mon Sep 17 00:00:00 2001
From: printercu <printercu@gmail.com>
Date: Mon, 23 Apr 2018 20:16:30 +0300
Subject: Respect NODE_ENV when running `rails yarn:install`

`yarn install --prod` removes dev deps,
so it's impossible to run `assets:precompile` with dev npm dependencies.
This change makes rake task pass NODE_ENV to yarn when explicitly set.
---
 railties/lib/rails/tasks/yarn.rake | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/railties/lib/rails/tasks/yarn.rake b/railties/lib/rails/tasks/yarn.rake
index 10703a1808..cf45a392e8 100644
--- a/railties/lib/rails/tasks/yarn.rake
+++ b/railties/lib/rails/tasks/yarn.rake
@@ -3,7 +3,13 @@
 namespace :yarn do
   desc "Install all JavaScript dependencies as specified via Yarn"
   task :install do
-    system("./bin/yarn install --no-progress --frozen-lockfile --production")
+    # Install only production deps when for not usual envs.
+    valid_node_envs = %w[test development production]
+    node_env = ENV.fetch("NODE_ENV") do
+      rails_env = ENV["RAILS_ENV"]
+      valid_node_envs.include?(rails_env) ? rails_env : "production"
+    end
+    system({ "NODE_ENV" => node_env }, "./bin/yarn install --no-progress --frozen-lockfile")
   end
 end
 
-- 
cgit v1.2.3