diff --git a/Gemfile b/Gemfile index 649c1df5815..0af6a9d7c8e 100644 --- a/Gemfile +++ b/Gemfile @@ -228,9 +228,8 @@ gem "logstash-event", require: false gem "logstash-logger", require: false gem "logster" -# These are forks of sassc and sassc-rails with dart-sass support +# A fork of sassc with dart-sass support gem "dartsass-ruby" -gem "dartsass-sprockets" gem "rotp", require: false diff --git a/Gemfile.lock b/Gemfile.lock index 1c371b0f0dc..2382f8fa9f8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -124,12 +124,6 @@ GEM addressable dartsass-ruby (3.0.1) sass-embedded (~> 1.54) - dartsass-sprockets (3.0.0) - dartsass-ruby (~> 3.0) - railties (>= 4.0.0) - sprockets (> 3.0) - sprockets-rails - tilt date (3.3.3) debug_inspector (1.1.0) diff-lcs (1.5.0) @@ -497,7 +491,6 @@ GEM syntax_tree-disable_ternary (1.0.0) test-prof (1.2.3) thor (1.2.2) - tilt (2.3.0) timeout (0.4.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) @@ -566,7 +559,6 @@ DEPENDENCIES cppjieba_rb css_parser dartsass-ruby - dartsass-sprockets diffy digest discourse-fonts diff --git a/app/assets/javascripts/discourse/ember-cli-build.js b/app/assets/javascripts/discourse/ember-cli-build.js index 8183af8d6b3..fc62448d5df 100644 --- a/app/assets/javascripts/discourse/ember-cli-build.js +++ b/app/assets/javascripts/discourse/ember-cli-build.js @@ -24,7 +24,6 @@ module.exports = function (defaults) { const isEmbroider = process.env.USE_EMBROIDER === "1"; const isProduction = EmberApp.env().includes("production"); - const isTest = EmberApp.env().includes("test"); // This is more or less the same as the one in @embroider/test-setup const maybeEmbroider = (app, options) => { @@ -162,20 +161,16 @@ module.exports = function (defaults) { .findAddonByName("pretty-text") .treeForMarkdownItBundle(); - const extraPublicTrees = []; + const testStylesheetTree = mergeTrees([ + discourseScss(`${discourseRoot}/app/assets/stylesheets`, "qunit.scss"), + discourseScss( + `${discourseRoot}/app/assets/stylesheets`, + "qunit-custom.scss" + ), + ]); + app.project.liveReloadFilterPatterns = [/.*\.scss/]; - if (isTest) { - const testemStylesheetTree = mergeTrees([ - discourseScss(`${discourseRoot}/app/assets/stylesheets`, "qunit.scss"), - discourseScss( - `${discourseRoot}/app/assets/stylesheets`, - "qunit-custom.scss" - ), - ]); - extraPublicTrees.push(testemStylesheetTree); - } - - extraPublicTrees.push( + const extraPublicTrees = [ createI18nTree(discourseRoot, vendorJs), parsePluginClientSettings(discourseRoot, vendorJs, app), funnel(`${discourseRoot}/public/javascripts`, { destDir: "javascripts" }), @@ -197,8 +192,9 @@ module.exports = function (defaults) { outputFile: `assets/markdown-it-bundle.js`, }), generateScriptsTree(app), - discoursePluginsTree - ); + discoursePluginsTree, + testStylesheetTree, + ]; return maybeEmbroider(app, { extraPublicTrees, diff --git a/config/application.rb b/config/application.rb index 9664112df22..42abd0aba4f 100644 --- a/config/application.rb +++ b/config/application.rb @@ -181,6 +181,15 @@ module Discourse charset: :unicode Sprockets.register_postprocessor "application/javascript", DiscourseJsProcessor + class SprocketsSassUnsupported + def self.call(*args) + raise "Discourse does not support compiling scss/sass files via Sprockets" + end + end + + Sprockets.register_engine(".sass", SprocketsSassUnsupported, silence_deprecation: true) + Sprockets.register_engine(".scss", SprocketsSassUnsupported, silence_deprecation: true) + Discourse::Application.initializer :prepend_ember_assets do |app| # Needs to be in its own initializer so it runs after the append_assets_path initializer defined by Sprockets app