DEV: Plugin scss errors should break precompile (#6974)

This commit is contained in:
Penar Musaraj 2019-02-07 09:27:42 -05:00 committed by GitHub
parent 6c195640b9
commit d639cadb7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 5 additions and 16 deletions

View File

@ -105,6 +105,8 @@ module Discourse
class Deprecation < StandardError; end
class ScssError < StandardError; end
def self.filters
@filters ||= [:latest, :unread, :new, :read, :posted, :bookmarks]
end

View File

@ -6,16 +6,6 @@ module Stylesheet
class Compiler
def self.error_as_css(error, label)
error = error.message
error.gsub!("\n", '\A ')
error.gsub!("'", '\27 ')
"#main { display: none; }
body { white-space: pre; }
body:before { font-family: monospace; content: '#{error}' }"
end
def self.compile_asset(asset, options = {})
if Importer.special_imports[asset.to_s]

View File

@ -166,15 +166,11 @@ class Stylesheet::Manager
source_map_file: source_map_filename
)
rescue SassC::SyntaxError => e
# we do not need this reported as we will report it in the UI anyway
Rails.logger.info "Failed to compile #{@target} stylesheet: #{e.message}"
if %w{embedded_theme mobile_theme desktop_theme}.include?(@target.to_s)
# no special errors for theme, handled in theme editor
["", nil]
else
[Stylesheet::Compiler.error_as_css(e, "#{@target} stylesheet"), nil]
raise Discourse::ScssError, e.message
end
end

View File

@ -58,7 +58,8 @@ task 'assets:precompile:css' => 'environment' do
STDERR.puts "Compiling css for #{db} #{Time.zone.now}"
begin
Stylesheet::Manager.precompile_css
rescue => PG::UndefinedColumn
rescue PG::UndefinedColumn => e
STDERR.puts "#{e.class} #{e.message}: #{e.backtrace.join("\n")}"
STDERR.puts "Skipping precompilation of CSS cause schema is old, you are precompiling prior to running migrations."
end
end