lib/webpacker/railtie.rb in webpacker-3.0.2 vs lib/webpacker/railtie.rb in webpacker-3.1.0

- old
+ new

@@ -2,29 +2,68 @@ require "webpacker/helper" require "webpacker/dev_server_proxy" class Webpacker::Engine < ::Rails::Engine + # Allows Webpacker config values to be set via Rails env config files + config.webpacker = ActiveSupport::OrderedOptions.new + config.webpacker.check_yarn_integrity = false + + # ================================ + # Check Yarn Integrity Initializer + # ================================ + # + # development (on by default): + # + # to turn off: + # - edit config/environments/development.rb + # - add `config.webpacker.check_yarn_integrity = false` + # + # production (off by default): + # + # to turn on: + # - edit config/environments/production.rb + # - add `config.webpacker.check_yarn_integrity = false` + initializer "webpacker.yarn_check" do |app| + if File.exist?("yarn.lock") && app.config.webpacker.check_yarn_integrity + ok = system("yarn check --integrity") + + if !ok + warn "\n\n" + warn "========================================" + warn " Your Yarn packages are out of date!" + warn " Please run `yarn install` to update." + warn "========================================" + warn "\n\n" + warn "To disable this check, please add `config.webpacker.check_yarn_integrity = false`" + warn "to your Rails development config file (config/environments/development.rb)." + warn "\n\n" + + exit(1) + end + end + end + initializer "webpacker.proxy" do |app| if Rails.env.development? app.middleware.insert_before 0, Rails::VERSION::MAJOR >= 5 ? Webpacker::DevServerProxy : "Webpacker::DevServerProxy", ssl_verify_none: true end end - initializer "webpacker.helper" do |app| + initializer "webpacker.helper" do ActiveSupport.on_load :action_controller do ActionController::Base.helper Webpacker::Helper end ActiveSupport.on_load :action_view do include Webpacker::Helper end end initializer "webpacker.logger" do - config.after_initialize do |app| + config.after_initialize do if ::Rails.logger.respond_to?(:tagged) Webpacker.logger = ::Rails.logger else Webpacker.logger = ActiveSupport::TaggedLogging.new(::Rails.logger) end