You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
839 B
34 lines
839 B
# frozen_string_literal: true |
|
|
|
# Disable this task as we use pnpm |
|
|
|
require 'semantic_range' |
|
|
|
Rake::Task['webpacker:check_yarn'].clear |
|
|
|
namespace :webpacker do |
|
desc 'Verifies if Yarn is installed' |
|
task check_yarn: :environment do |
|
begin |
|
yarn_version = `yarn --version`.strip |
|
raise Errno::ENOENT if yarn_version.blank? |
|
|
|
yarn_range = '>=4 <5' |
|
is_valid = begin |
|
SemanticRange.satisfies?(yarn_version, yarn_range) |
|
rescue |
|
false |
|
end |
|
|
|
unless is_valid |
|
warn "Mastodon and Webpacker requires Yarn \"#{yarn_range}\" and you are using #{yarn_version}" |
|
warn 'Exiting!' |
|
exit! |
|
end |
|
rescue Errno::ENOENT |
|
warn 'Yarn not installed. Please see the Mastodon documentation to install the correct version.' |
|
warn 'Exiting!' |
|
exit! |
|
end |
|
end |
|
end
|
|
|