1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
|
Description: Use system yarnpkg instead of yarn
In Debian, yarn is packaged as "yarnpkg".
.
This patch will replace all the "bin/yarn" usages to "bin/yarnpkg".
Author: Jongmin Kim <jmkim@pukyong.ac.kr>
Forwarded: no
Last-Update: 2019-06-21
--- a/railties/lib/rails/app_updater.rb
+++ b/railties/lib/rails/app_updater.rb
@@ -21,7 +21,7 @@
private
def generator_options
options = { api: !!Rails.application.config.api_only, update: true }
- options[:skip_javascript] = !File.exist?(Rails.root.join("bin", "yarn"))
+ options[:skip_javascript] = !File.exist?(Rails.root.join("bin", "yarnpkg"))
options[:skip_active_record] = !defined?(ActiveRecord::Railtie)
options[:skip_active_storage] = !defined?(ActiveStorage::Engine) || !defined?(ActiveRecord::Railtie)
options[:skip_action_mailer] = !defined?(ActionMailer::Railtie)
--- a/railties/lib/rails/generators/rails/app/app_generator.rb
+++ b/railties/lib/rails/generators/rails/app/app_generator.rb
@@ -96,7 +96,7 @@
chmod "bin", 0755 & ~File.umask, verbose: false
remove_file "bin/spring" unless spring_install?
- remove_file "bin/yarn" if options[:skip_javascript]
+ remove_file "bin/yarnpkg" if options[:skip_javascript]
end
def bin_when_updating
@@ -104,7 +104,7 @@
end
def yarn_when_updating
- template "bin/yarn", force: true do |content|
+ template "bin/yarnpkg", force: true do |content|
"#{shebang}\n" + content
end
--- a/railties/lib/rails/generators/rails/app/templates/bin/setup.tt
+++ b/railties/lib/rails/generators/rails/app/templates/bin/setup.tt
@@ -18,7 +18,7 @@
<% unless options.skip_javascript? -%>
# Install JavaScript dependencies
- system! 'bin/yarn'
+ system! 'bin/yarnpkg'
<% end -%>
<% unless options.skip_active_record? -%>
--- a/railties/lib/rails/tasks/yarn.rake
+++ b/railties/lib/rails/tasks/yarn.rake
@@ -10,21 +10,21 @@
end
yarn_flags =
- if `#{RbConfig.ruby} "#{Rails.root}/bin/yarn" --version`.start_with?("1")
+ if `#{RbConfig.ruby} "#{Rails.root}/bin/yarnpkg" --version`.start_with?("1")
"--no-progress --frozen-lockfile"
else
"--immutable"
end
- system({ "NODE_ENV" => node_env }, "#{RbConfig.ruby} \"#{Rails.root}/bin/yarn\" install #{yarn_flags}")
+ system({ "NODE_ENV" => node_env }, "#{RbConfig.ruby} \"#{Rails.root}/bin/yarnpkg\" install #{yarn_flags}")
rescue Errno::ENOENT
- $stderr.puts "bin/yarn was not found."
+ $stderr.puts "bin/yarnpkg was not found."
$stderr.puts "Please run `bundle exec rails app:update:bin` to create it."
exit 1
end
end
# Run Yarn prior to Sprockets assets precompilation, so dependencies are available for use.
-if Rake::Task.task_defined?("assets:precompile") && File.exist?(Rails.root.join("bin", "yarn"))
+if Rake::Task.task_defined?("assets:precompile") && File.exist?(Rails.root.join("bin", "yarnpkg"))
Rake::Task["assets:precompile"].enhance [ "yarn:install" ]
end
--- a/railties/test/generators/api_app_generator_test.rb
+++ b/railties/test/generators/api_app_generator_test.rb
@@ -106,7 +106,7 @@
{ api: true, update: true }, { destination_root: destination_root, shell: @shell }
quietly { generator.update_bin_files }
- assert_no_file "bin/yarn"
+ assert_no_file "bin/yarnpkg"
end
private
@@ -168,7 +168,7 @@
%w(app/assets
app/helpers
app/views/layouts/application.html.erb
- bin/yarn
+ bin/yarnpkg
config/initializers/assets.rb
config/initializers/cookies_serializer.rb
config/initializers/content_security_policy.rb
--- a/railties/test/generators/app_generator_test.rb
+++ b/railties/test/generators/app_generator_test.rb
@@ -42,7 +42,7 @@
bin/rails
bin/rake
bin/setup
- bin/yarn
+ /bin/yarnpkg
config/application.rb
config/boot.rb
config/cable.yml
@@ -301,11 +301,11 @@
def test_adds_bin_yarn_into_setup_script
run_generator
- assert_file "bin/yarn"
+ assert_file "bin/yarnpkg"
assert_file "bin/setup" do |content|
# Does not comment yarn install
- assert_match(/(?=[^#]*?) system! 'bin\/yarn'/, content)
+ assert_match(/(?=[^#]*?) system! 'bin\/yarnpkg'/, content)
end
end
@@ -318,10 +318,10 @@
generator.send(:app_const)
quietly { generator.update_bin_files }
- assert_no_file "#{app_root}/bin/yarn"
+ assert_no_file "#{app_root}/bin/yarnpkg"
assert_file "#{app_root}/bin/setup" do |content|
- assert_no_match(/system! 'bin\/yarn'/, content)
+ assert_no_match(/system! 'bin\/yarnpkg'/, content)
end
end
end
@@ -1168,7 +1168,7 @@
assert_no_file "#{app_root}/config/storage.yml"
assert_no_file "#{app_root}/config/webpacker.yml"
assert_no_file "#{app_root}/config/cable.yml"
- assert_no_file "#{app_root}/bin/yarn"
+ assert_no_file "#{app_root}/bin/yarnpkg"
assert_no_file "#{app_root}/views/layouts/mailer.html.erb"
assert_no_file "#{app_root}/config/spring.rb"
assert_no_file "#{app_root}/app/jobs/application.rb"
--- a/railties/test/generators/shared_generator_tests.rb
+++ b/railties/test/generators/shared_generator_tests.rb
@@ -340,14 +340,13 @@
skip "#34009 disabled JS by default for plugins" if generator_class.name == "Rails::Generators::PluginGenerator"
run_generator
assert_file "#{application_path}/package.json", /dependencies/
- assert_file "#{application_path}/bin/yarn"
+ assert_file "/bin/yarnpkg"
assert_file "#{application_path}/config/initializers/assets.rb", /node_modules/
end
def test_generator_for_yarn_skipped
run_generator([destination_root, "--skip-javascript"])
assert_no_file "#{application_path}/package.json"
- assert_no_file "#{application_path}/bin/yarn"
assert_file "#{application_path}/config/initializers/assets.rb" do |content|
assert_no_match(/node_modules/, content)
--- a/railties/test/isolation/abstract_unit.rb
+++ b/railties/test/isolation/abstract_unit.rb
@@ -518,14 +518,14 @@
unless File.exist?("#{RAILS_FRAMEWORK_ROOT}/actionview/lib/assets/compiled/rails-ujs.js")
Dir.chdir("#{RAILS_FRAMEWORK_ROOT}/actionview") do
- sh "yarn build"
+ sh "yarnpkg build"
end
end
assets_path = "#{RAILS_FRAMEWORK_ROOT}/railties/test/isolation/assets"
unless Dir.exist?("#{assets_path}/node_modules")
Dir.chdir(assets_path) do
- sh "yarn install"
+ sh "yarnpkg install"
end
end
|