Replace sprockets/browserify with Webpack (#2617)
* Replace browserify with webpack * Add react-intl-translations-manager * Do not minify in development, add offline-plugin for ServiceWorker background cache updates * Adjust tests and dependencies * Fix production deployments * Fix tests * More optimizations * Improve travis cache for npm stuff * Re-run travis * Add back support for custom.scss as before * Remove offline-plugin and babili * Fix issue with Immutable.List().unshift(...values) not working as expected * Make travis load schema instead of running all migrations in sequence * Fix missing React import in WarningContainer. Optimize rendering performance by using ImmutablePureComponent instead of React.PureComponent. ImmutablePureComponent uses Immutable.is() to compare props. Replace dynamic callback bindings in <UI /> * Add react definitions to places that use JSX * Add Procfile.dev for running rails, webpack and streaming API at the same time
This commit is contained in:
		
							
								
								
									
										33
									
								
								bin/webpack
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										33
									
								
								bin/webpack
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
#!/usr/bin/env ruby
 | 
			
		||||
$stdout.sync = true
 | 
			
		||||
 | 
			
		||||
require "shellwords"
 | 
			
		||||
require "yaml"
 | 
			
		||||
 | 
			
		||||
ENV["RAILS_ENV"] ||= "development"
 | 
			
		||||
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")
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
  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"
 | 
			
		||||
 | 
			
		||||
Dir.chdir(APP_PATH) do
 | 
			
		||||
  exec "NODE_PATH=#{NODE_MODULES_PATH} #{WEBPACK_BIN} --config #{WEBPACK_CONFIG}" \
 | 
			
		||||
    " #{ARGV.join(" ")}"
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										33
									
								
								bin/webpack-dev-server
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										33
									
								
								bin/webpack-dev-server
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
#!/usr/bin/env ruby
 | 
			
		||||
$stdout.sync = true
 | 
			
		||||
 | 
			
		||||
require "shellwords"
 | 
			
		||||
require "yaml"
 | 
			
		||||
 | 
			
		||||
ENV["RAILS_ENV"] ||= "development"
 | 
			
		||||
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")
 | 
			
		||||
 | 
			
		||||
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"])
 | 
			
		||||
 | 
			
		||||
  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 "Please run bundle exec rails webpacker:install to install webpacker"
 | 
			
		||||
  exit!
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
Dir.chdir(APP_PATH) do
 | 
			
		||||
  exec "NODE_PATH=#{NODE_MODULES_PATH} #{WEBPACK_BIN} --progress --color " \
 | 
			
		||||
    "--config #{DEV_SERVER_CONFIG} #{ARGV.join(" ")}"
 | 
			
		||||
end
 | 
			
		||||
							
								
								
									
										11
									
								
								bin/yarn
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								bin/yarn
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
#!/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
 | 
			
		||||
		Reference in New Issue
	
	Block a user