summaryrefslogtreecommitdiffstats
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 a871ce77bc7..867550eb8fc 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 c2a61ff5e68..a867f2c0137 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 c2bacef836f..00000000000
--- 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