Sha256: 3ebd82e2cebcbadcfb152eeecff5a979586aa15e6a627ac43b0cdc42131624d7

Contents?: true

Size: 1.24 KB

Versions: 15

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

# Duplicate of the yarn tasks still present in Rails until Webpacker <5 have been deprecated

namespace :yarn do
  desc "Install all JavaScript dependencies as specified via Yarn"
  task :install do
    begin
      # Install only production deps when for not usual envs.
      valid_node_envs = %w[test development production]
      node_env = ENV.fetch("NODE_ENV") do
        valid_node_envs.include?(Rails.env) ? Rails.env : "production"
      end

      yarn_flags =
        if `#{RbConfig.ruby} "#{Rails.root}/bin/yarn" --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}",
        exception: true
      )
    rescue Errno::ENOENT
      $stderr.puts "bin/yarn was not found."
      $stderr.puts "Please run `bundle exec rails app:update:bin` to create it."
      exit 1
    end
  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"))
  Rake::Task["assets:precompile"].enhance [ "yarn:install" ]
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
shakapacker-6.3.0 lib/tasks/yarn.rake
shakapacker-6.3.0.pre.rc.1 lib/tasks/yarn.rake
shakapacker-6.2.1 lib/tasks/yarn.rake
shakapacker-6.2.0 lib/tasks/yarn.rake
shakapacker-6.1.1 lib/tasks/yarn.rake
shakapacker-6.1.0 lib/tasks/yarn.rake
shakapacker-6.1.0.beta.0 lib/tasks/yarn.rake
shakapacker-6.0.2 lib/tasks/yarn.rake
shakapacker-6.0.1 lib/tasks/yarn.rake
shakapacker-6.0.0 lib/tasks/yarn.rake
shakapacker-6.0.0.rc.14 lib/tasks/yarn.rake
shakapacker-6.0.0.rc.13 lib/tasks/yarn.rake
shakapacker-6.0.0.rc.12 lib/tasks/yarn.rake
shakapacker-6.0.0.rc.6 lib/tasks/yarn.rake
webpacker-6.0.0.rc.6 lib/tasks/yarn.rake