Upgrade Webpacker to version 2.0 (#3729)
This commit is contained in:
		
				
					committed by
					
						
						Eugen Rochko
					
				
			
			
				
	
			
			
			
						parent
						
							94d0e012de
						
					
				
				
					commit
					53e42bf91e
				
			
							
								
								
									
										25
									
								
								bin/webpack
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								bin/webpack
									
									
									
									
									
								
							@@ -5,29 +5,24 @@ require "shellwords"
 | 
			
		||||
require "yaml"
 | 
			
		||||
 | 
			
		||||
ENV["RAILS_ENV"] ||= "development"
 | 
			
		||||
RAILS_ENV   = ENV["RAILS_ENV"]
 | 
			
		||||
RAILS_ENV = ENV["RAILS_ENV"]
 | 
			
		||||
 | 
			
		||||
ENV["NODE_ENV"] ||= RAILS_ENV
 | 
			
		||||
NODE_ENV    = ENV["NODE_ENV"]
 | 
			
		||||
NODE_ENV = ENV["NODE_ENV"]
 | 
			
		||||
 | 
			
		||||
APP_PATH               = File.expand_path("../", __dir__)
 | 
			
		||||
CONFIG_PATH            = File.join(APP_PATH, "config/webpack/paths.yml")
 | 
			
		||||
APP_PATH          = File.expand_path("../", __dir__)
 | 
			
		||||
NODE_MODULES_PATH = File.join(APP_PATH, "node_modules")
 | 
			
		||||
WEBPACK_CONFIG    = File.join(APP_PATH, "config/webpack/#{NODE_ENV}.js")
 | 
			
		||||
 | 
			
		||||
begin
 | 
			
		||||
  paths            = YAML.load(File.read(CONFIG_PATH))[NODE_ENV]
 | 
			
		||||
 | 
			
		||||
  NODE_MODULES_PATH   = File.join(APP_PATH.shellescape, paths["node_modules"])
 | 
			
		||||
  WEBPACK_CONFIG_PATH = File.join(APP_PATH.shellescape, paths["config"])
 | 
			
		||||
rescue Errno::ENOENT, NoMethodError
 | 
			
		||||
  puts "Configuration not found in config/webpack/paths.yml"
 | 
			
		||||
unless File.exist?(WEBPACK_CONFIG)
 | 
			
		||||
  puts "Webpack configuration not found."
 | 
			
		||||
  puts "Please run bundle exec rails webpacker:install to install webpacker"
 | 
			
		||||
  exit!
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
WEBPACK_BIN    = "#{NODE_MODULES_PATH}/.bin/webpack"
 | 
			
		||||
WEBPACK_CONFIG = "#{WEBPACK_CONFIG_PATH}/#{NODE_ENV}.js"
 | 
			
		||||
newenv  = { "NODE_PATH" => NODE_MODULES_PATH.shellescape }
 | 
			
		||||
cmdline = ["yarn", "run", "webpack", "--", "--config", WEBPACK_CONFIG] + ARGV
 | 
			
		||||
 | 
			
		||||
Dir.chdir(APP_PATH) do
 | 
			
		||||
  exec "NODE_PATH=#{NODE_MODULES_PATH} #{WEBPACK_BIN} --config #{WEBPACK_CONFIG}" \
 | 
			
		||||
    " #{ARGV.join(" ")}"
 | 
			
		||||
  exec newenv, *cmdline
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
@@ -10,24 +10,34 @@ RAILS_ENV = ENV["RAILS_ENV"]
 | 
			
		||||
ENV["NODE_ENV"] ||= RAILS_ENV
 | 
			
		||||
NODE_ENV = ENV["NODE_ENV"]
 | 
			
		||||
 | 
			
		||||
APP_PATH    = File.expand_path("../", __dir__)
 | 
			
		||||
CONFIG_PATH = File.join(APP_PATH, "config/webpack/paths.yml")
 | 
			
		||||
APP_PATH          = File.expand_path("../", __dir__)
 | 
			
		||||
CONFIG_FILE       = File.join(APP_PATH, "config/webpacker.yml")
 | 
			
		||||
NODE_MODULES_PATH = File.join(APP_PATH, "node_modules")
 | 
			
		||||
WEBPACK_CONFIG    = File.join(APP_PATH, "config/webpack/development.js")
 | 
			
		||||
 | 
			
		||||
def args(key)
 | 
			
		||||
  index = ARGV.index(key)
 | 
			
		||||
  index ? ARGV[index + 1] : nil
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
begin
 | 
			
		||||
  paths = YAML.load(File.read(CONFIG_PATH))[NODE_ENV]
 | 
			
		||||
  dev_server = YAML.load_file(CONFIG_FILE)["development"]["dev_server"]
 | 
			
		||||
 | 
			
		||||
  NODE_MODULES_PATH   = File.join(APP_PATH.shellescape, paths["node_modules"])
 | 
			
		||||
  WEBPACK_CONFIG_PATH = File.join(APP_PATH.shellescape, paths["config"])
 | 
			
		||||
  DEV_SERVER_HOST = "http#{"s" if args('--https') || dev_server["https"]}://#{args('--host') || dev_server["host"]}:#{args('--port') || dev_server["port"]}"
 | 
			
		||||
 | 
			
		||||
  WEBPACK_BIN       = "#{NODE_MODULES_PATH}/.bin/webpack-dev-server"
 | 
			
		||||
  DEV_SERVER_CONFIG = "#{WEBPACK_CONFIG_PATH}/development.server.js"
 | 
			
		||||
rescue Errno::ENOENT, NoMethodError
 | 
			
		||||
  puts "Configuration not found in config/webpacker/paths.yml."
 | 
			
		||||
  puts "Webpack dev_server configuration not found in #{CONFIG_FILE}."
 | 
			
		||||
  puts "Please run bundle exec rails webpacker:install to install webpacker"
 | 
			
		||||
  exit!
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
newenv = {
 | 
			
		||||
  "NODE_PATH" => NODE_MODULES_PATH.shellescape,
 | 
			
		||||
  "ASSET_HOST" => DEV_SERVER_HOST.shellescape
 | 
			
		||||
}.freeze
 | 
			
		||||
 | 
			
		||||
cmdline = ["yarn", "run", "webpack-dev-server", "--", "--progress", "--color", "--config", WEBPACK_CONFIG] + ARGV
 | 
			
		||||
 | 
			
		||||
Dir.chdir(APP_PATH) do
 | 
			
		||||
  exec "NODE_PATH=#{NODE_MODULES_PATH} #{WEBPACK_BIN} --progress --color " \
 | 
			
		||||
    "--config #{DEV_SERVER_CONFIG} #{ARGV.join(" ")}"
 | 
			
		||||
  exec newenv, *cmdline
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								bin/yarn
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								bin/yarn
									
									
									
									
									
								
							@@ -1,11 +0,0 @@
 | 
			
		||||
#!/usr/bin/env ruby
 | 
			
		||||
VENDOR_PATH = File.expand_path('..', __dir__)
 | 
			
		||||
Dir.chdir(VENDOR_PATH) do
 | 
			
		||||
  begin
 | 
			
		||||
    exec "yarnpkg #{ARGV.join(" ")}"
 | 
			
		||||
  rescue Errno::ENOENT
 | 
			
		||||
    $stderr.puts "Yarn executable was not detected in the system."
 | 
			
		||||
    $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
 | 
			
		||||
    exit 1
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user