@@ -10,26 +10,26 @@ RAILS_ENV = ENV["RAILS_ENV"]
10
10
ENV["NODE_ENV"] ||= RAILS_ENV
11
11
NODE_ENV = ENV["NODE_ENV"]
12
12
13
- APP_PATH = File.expand_path("../", __dir__)
14
- CONFIG_PATH = File.join(APP_PATH, "config/webpack/paths.yml")
13
+ APP_PATH = File.expand_path("../", __dir__)
15
14
16
- begin
17
- paths = YAML.load(File.read(CONFIG_PATH))[NODE_ENV]
18
-
19
- NODE_MODULES_PATH = File.join(APP_PATH.shellescape, paths["node_modules"])
20
- WEBPACK_CONFIG_PATH = File.join(APP_PATH.shellescape, paths["config"])
21
-
22
- DEV_SERVER_CONFIG = "#{WEBPACK_CONFIG_PATH}/development.server.js"
15
+ def load_yaml_config(config_file)
16
+ YAML.load_file(File.join(APP_PATH, config_file))[NODE_ENV]
23
17
rescue Errno::ENOENT, NoMethodError
24
- puts "Configuration not found in config/webpacker/paths.yml ."
18
+ puts "Configuration not found in #{config_file} ."
25
19
puts "Please run bundle exec rails webpacker:install to install webpacker"
26
20
exit!
27
21
end
28
22
29
- DEV_SERVER_BIN = "yarn run webpack-dev-server"
30
- newenv = { "NODE_PATH" => NODE_MODULES_PATH }
31
- cmdline = [DEV_SERVER_BIN, "--", "--progress", "--color", "--config", DEV_SERVER_CONFIG] + ARGV
23
+ paths = load_yaml_config("config/webpack/paths.yml")
24
+ NODE_MODULES_PATH = File.join(APP_PATH, paths["node_modules"])
25
+ DEV_SERVER_CONFIG = File.join(APP_PATH, paths["config"], "development.server.js")
26
+
27
+ dev_server = load_yaml_config("config/webpack/development.server.yml")
28
+ DEV_SERVER_HOST = "http#{"s" if dev_server["https"]}://#{dev_server["host"]}:#{dev_server["port"]}"
29
+
30
+ newenv = { "NODE_PATH" => NODE_MODULES_PATH.shellescape, "ASSET_HOST" => DEV_SERVER_HOST.shellescape }
31
+ cmdline = ["yarn", "run", "webpack-dev-server", "--", "--progress", "--color", "--config", DEV_SERVER_CONFIG] + ARGV
32
32
33
33
Dir.chdir(APP_PATH) do
34
- exec newenv, cmdline.join(' ')
34
+ exec newenv, * cmdline
35
35
end
0 commit comments