Sha256: 62a01d32a0f0ee7d418c649dd00b73a747d6ef8b0f0bf4f84f8d5acc3839a25f

Contents?: true

Size: 1.18 KB

Versions: 25

Compression:

Stored size: 1.18 KB

Contents

require "shellwords"
require "webpacker/runner"

module Webpacker
  class WebpackRunner < Webpacker::Runner
    WEBPACK_COMMANDS = [
      "help",
      "h",
      "--help",
      "-h",
      "version",
      "v",
      "--version",
      "-v",
      "info",
      "i"
    ].freeze

    def run
      env = Webpacker::Compiler.env
      env["WEBPACKER_CONFIG"] = @webpacker_config

      cmd = if node_modules_bin_exist?
        ["#{@node_modules_bin_path}/webpack"]
      else
        ["yarn", "webpack"]
      end

      if @argv.delete "--debug-webpacker"
        cmd = ["node", "--inspect-brk"] + cmd
      end

      if @argv.delete "--trace-deprecation"
        cmd = ["node", "--trace-deprecation"] + cmd
      end

      if @argv.delete "--no-deprecation"
        cmd = ["node", "--no-deprecation"] + cmd
      end

      # Webpack commands are not compatible with --config option.
      if (@argv & WEBPACK_COMMANDS).empty?
        cmd += ["--config", @webpack_config]
      end

      cmd += @argv

      Dir.chdir(@app_path) do
        Kernel.exec env, *cmd
      end
    end

    private
      def node_modules_bin_exist?
        File.exist?("#{@node_modules_bin_path}/webpack")
      end
  end
end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
shakapacker-6.6.0 lib/webpacker/webpack_runner.rb
shakapacker-6.5.6 lib/webpacker/webpack_runner.rb
shakapacker-6.5.5 lib/webpacker/webpack_runner.rb
shakapacker-6.5.4 lib/webpacker/webpack_runner.rb
shakapacker-6.5.3 lib/webpacker/webpack_runner.rb
shakapacker-6.5.2 lib/webpacker/webpack_runner.rb
shakapacker-6.5.1 lib/webpacker/webpack_runner.rb
shakapacker-6.5.0 lib/webpacker/webpack_runner.rb
shakapacker-6.4.1 lib/webpacker/webpack_runner.rb
shakapacker-6.4.0 lib/webpacker/webpack_runner.rb
shakapacker-6.3.0 lib/webpacker/webpack_runner.rb
shakapacker-6.3.0.pre.rc.1 lib/webpacker/webpack_runner.rb
shakapacker-6.2.1 lib/webpacker/webpack_runner.rb
shakapacker-6.2.0 lib/webpacker/webpack_runner.rb
shakapacker-6.1.1 lib/webpacker/webpack_runner.rb
shakapacker-6.1.0 lib/webpacker/webpack_runner.rb
shakapacker-6.1.0.beta.0 lib/webpacker/webpack_runner.rb
shakapacker-6.0.2 lib/webpacker/webpack_runner.rb
shakapacker-6.0.1 lib/webpacker/webpack_runner.rb
shakapacker-6.0.0 lib/webpacker/webpack_runner.rb