Sha256: 7060daa4bf9294b5000940d03b2b58c9aabaf5b89d13620e436ec5d3677c5f38
Contents?: true
Size: 1.9 KB
Versions: 3
Compression:
Stored size: 1.9 KB
Contents
require "shellwords" require "socket" require "webpacker/configuration" require "webpacker/dev_server" require "webpacker/runner" module Webpacker class DevServerRunner < Webpacker::Runner def run load_config detect_port! execute_cmd end private def load_config app_root = Pathname.new(@app_path) @config = Configuration.new( root_path: app_root, config_path: app_root.join("config/webpacker.yml"), env: ENV["JETS_ENV"] ) dev_server = DevServer.new(@config) @hostname = dev_server.host @port = dev_server.port @pretty = dev_server.pretty? rescue Errno::ENOENT, NoMethodError $stdout.puts "webpack dev_server configuration not found in #{@config.config_path}[#{ENV["JETS_ENV"]}]." $stdout.puts "Please run bundle exec rails webpacker:install to install Webpacker" exit! end def detect_port! server = TCPServer.new(@hostname, @port) server.close rescue Errno::EADDRINUSE $stdout.puts "Another program is running on port #{@port}. Set a new port in #{@config.config_path} for dev_server" exit! end def execute_cmd env = Webpacker::Compiler.env env["WEBPACKER_CONFIG"] = @webpacker_config cmd = if node_modules_bin_exist? ["#{@node_modules_bin_path}/webpack-dev-server"] else ["yarn", "webpack-dev-server"] end if @argv.include?("--debug-webpacker") cmd = [ "node", "--inspect-brk"] + cmd end cmd += ["--config", @webpack_config] cmd += ["--progress", "--color"] if @pretty Dir.chdir(@app_path) do Kernel.exec env, *cmd end end def node_modules_bin_exist? File.exist?("#{@node_modules_bin_path}/webpack-dev-server") end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
jetpacker-0.7.0 | lib/webpacker/dev_server_runner.rb |
jetpacker-0.6.0 | lib/webpacker/dev_server_runner.rb |
jetpacker-0.5.0 | lib/webpacker/dev_server_runner.rb |