@@ -5,36 +5,28 @@ require "shellwords"
55require "yaml"
66
77ENV [ "RAILS_ENV" ] ||= "development"
8- RAILS_ENV = ENV [ "RAILS_ENV" ]
8+ RAILS_ENV = ENV [ "RAILS_ENV" ]
99
1010ENV [ "NODE_ENV" ] ||= RAILS_ENV
11- NODE_ENV = ENV [ "NODE_ENV" ]
11+ NODE_ENV = ENV [ "NODE_ENV" ]
1212
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__ )
1614
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 ]
2817rescue 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 } ."
3019 puts "Please run bundle exec rails webpacker:install to install webpacker"
3120 exit!
3221end
3322
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
3629
3730Dir . chdir ( APP_PATH ) do
38- exec "NODE_PATH=#{ NODE_MODULES_PATH } #{ WEBPACK_BIN } --config #{ WEBPACK_CONFIG } " \
39- " #{ ARGV . join ( " " ) } "
31+ exec newenv , *cmdline
4032end
0 commit comments