about summary refs log tree commit diff
path: root/bin
diff options
context:
space:
mode:
authorYamagishi Kazutoshi <ykzts@desire.sh>2017-06-18 09:57:09 +0900
committerEugen Rochko <eugen@zeonfederated.com>2017-06-18 02:57:09 +0200
commit53e42bf91ef2c705168f8d04b9374c349ec14074 (patch)
tree564d8607ee6fd7ac27979d157b261c038e9fad61 /bin
parent94d0e012dea89058b9c059636fb6d42f6565e534 (diff)
Upgrade Webpacker to version 2.0 (#3729)
Diffstat (limited to 'bin')
-rwxr-xr-xbin/webpack25
-rwxr-xr-xbin/webpack-dev-server30
-rwxr-xr-xbin/yarn11
3 files changed, 30 insertions, 36 deletions
diff --git a/bin/webpack b/bin/webpack
index a871ce77b..867550eb8 100755
--- a/bin/webpack
+++ b/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
diff --git a/bin/webpack-dev-server b/bin/webpack-dev-server
index c2a61ff5e..a867f2c01 100755
--- a/bin/webpack-dev-server
+++ b/bin/webpack-dev-server
@@ -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
diff --git a/bin/yarn b/bin/yarn
deleted file mode 100755
index c2bacef83..000000000
--- a/bin/yarn
+++ /dev/null
@@ -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