@@ -5,36 +5,28 @@ require "shellwords"
5
5
require "yaml"
6
6
7
7
ENV [ "RAILS_ENV" ] ||= "development"
8
- RAILS_ENV = ENV [ "RAILS_ENV" ]
8
+ RAILS_ENV = ENV [ "RAILS_ENV" ]
9
9
10
10
ENV [ "NODE_ENV" ] ||= RAILS_ENV
11
- NODE_ENV = ENV [ "NODE_ENV" ]
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" )
15
- DEV_SERVER_CONFIG_PATH = File . join ( APP_PATH , "config/webpack/development.server.yml" )
13
+ APP_PATH = File . expand_path ( "../" , __dir__ )
16
14
17
- begin
18
- paths = YAML . load ( File . read ( CONFIG_PATH ) ) [ NODE_ENV ]
19
- dev_server = YAML . load ( File . read ( DEV_SERVER_CONFIG_PATH ) ) [ NODE_ENV ]
20
-
21
- NODE_MODULES_PATH = File . join ( APP_PATH . shellescape , paths [ "node_modules" ] )
22
- WEBPACK_CONFIG_PATH = File . join ( APP_PATH . shellescape , paths [ "config" ] )
23
-
24
- if NODE_ENV == "development" && dev_server [ "enabled" ]
25
- puts "Warning: webpack-dev-server is currently enabled in #{ DEV_SERVER_CONFIG_PATH } . " \
26
- "Disable to serve assets directly from public/packs directory"
27
- end
15
+ def load_yaml_config ( config_file )
16
+ YAML . load_file ( File . join ( APP_PATH , config_file ) ) [ NODE_ENV ]
28
17
rescue Errno ::ENOENT , NoMethodError
29
- puts "Configuration not found in config/webpack/paths.yml or config/webpack/development.server.yml ."
18
+ puts "Configuration not found in #{ config_file } ."
30
19
puts "Please run bundle exec rails webpacker:install to install webpacker"
31
20
exit!
32
21
end
33
22
34
- WEBPACK_BIN = "#{ NODE_MODULES_PATH } /.bin/webpack"
35
- WEBPACK_CONFIG = "#{ WEBPACK_CONFIG_PATH } /#{ NODE_ENV } .js"
23
+ paths = load_yaml_config ( "config/webpack/paths.yml" )
24
+ NODE_MODULES_PATH = File . join ( APP_PATH , paths [ "node_modules" ] )
25
+ WEBPACK_CONFIG = File . join ( APP_PATH , paths [ "config" ] , "#{ NODE_ENV } .js" )
26
+
27
+ newenv = { "NODE_PATH" => NODE_MODULES_PATH . shellescape }
28
+ cmdline = [ "yarn" , "run" , "webpack" , "--" , "--config" , WEBPACK_CONFIG ] + ARGV
36
29
37
30
Dir . chdir ( APP_PATH ) do
38
- exec "NODE_PATH=#{ NODE_MODULES_PATH } #{ WEBPACK_BIN } --config #{ WEBPACK_CONFIG } " \
39
- " #{ ARGV . join ( " " ) } "
31
+ exec newenv , *cmdline
40
32
end
0 commit comments