mirror of https://github.com/rails/rails
Run yarn install relative to Rails.root
We may not always have binstubs relative to the directory we are running the rake task from. The particular case for this is with a mountable Rails engine and dummy app that is created to test it. This sets all the tasks up to run under an `app` namespace in railties/lib/rails/tasks/engine.rake This change resolves a problem whereby running `app🧶install` would have no effect as it would try to run in the plugins bin directory rather than the test/dummy/bin. This also means that it installs from test/dummy/package.json and into test/dummy/node_modules which is behaviour consistent with a normal Rails app. On a rails engine: ``` ➜ tmp rails plugin new rails-plugin --mountable ➜ tmp cd rails-plugin ``` Before this change: ``` ➜ rails-plugin rake app🧶install ➜ rails-plugin ``` After this change: ``` ➜ rails-plugin rake app🧶install yarn install v1.9.4 info No lockfile found. [1/4] 🔍 Resolving packages... [2/4] 🚚 Fetching packages... [3/4] 🔗 Linking dependencies... [4/4] 📃 Building fresh packages... ✨ Done in 0.07s. ``` When this change is ran against a normal rails install there is not a behavioural change: ``` ➜ tmp rails new full-app ➜ tmp cd full-app ➜ full-app git:(master) ✗ rake yarn:install yarn install v1.9.4 info No lockfile found. [1/4] 🔍 Resolving packages... [2/4] 🚚 Fetching packages... [3/4] 🔗 Linking dependencies... [4/4] 📃 Building fresh packages... ✨ Done in 0.09s. ```
This commit is contained in:
parent
dd29fabebf
commit
f443aac340
|
@ -9,7 +9,7 @@ namespace :yarn 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")
|
||||
system({ "NODE_ENV" => node_env }, "#{Rails.root}/bin/yarn install --no-progress --frozen-lockfile")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue