From cd492fb17d02985ba044410b60b961928cb1a3a5 Mon Sep 17 00:00:00 2001 From: Jon Kirwan <87758239+jon-kirwan@users.noreply.github.com> Date: Mon, 18 Dec 2023 13:30:07 +0000 Subject: [PATCH 1/4] Replace sassc-rails with dartsass-rails Co-Authored-By: Martin Jones <28779939+MartinJJones@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 17 +++++++---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index fe389b82b..2603f55b5 100644 --- a/Gemfile +++ b/Gemfile @@ -6,6 +6,7 @@ gem "rails", "7.1.2" gem "actionpack-page_caching" gem "bootsnap", require: false +gem "dartsass-rails" gem "gds-api-adapters" gem "govuk_app_config" gem "govuk_personalisation" @@ -13,7 +14,6 @@ gem "govuk_publishing_components" gem "nokogiri" gem "plek" gem "redis" -gem "sassc-rails" gem "sprockets-rails" gem "uglifier" diff --git a/Gemfile.lock b/Gemfile.lock index 988e4b262..e1ff4e328 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -108,6 +108,9 @@ GEM crack (0.4.5) rexml crass (1.0.6) + dartsass-rails (0.5.0) + railties (>= 6.0.0) + sass-embedded (~> 1.63) date (3.3.4) debug_inspector (1.1.0) docile (1.4.0) @@ -527,14 +530,9 @@ GEM ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) rubyzip (2.3.2) - sassc (2.4.0) - ffi (~> 1.9) - sassc-rails (2.1.2) - railties (>= 4.0.0) - sassc (>= 2.0) - sprockets (> 3.0) - sprockets-rails - tilt + sass-embedded (1.69.5) + google-protobuf (~> 3.23) + rake (>= 13.0.0) selenium-webdriver (4.14.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) @@ -561,7 +559,6 @@ GEM statsd-ruby (1.5.0) stringio (3.1.0) thor (1.3.0) - tilt (2.0.11) timeout (0.4.1) tzinfo (2.0.6) concurrent-ruby (~> 1.0) @@ -593,6 +590,7 @@ DEPENDENCIES binding_of_caller bootsnap climate_control + dartsass-rails gds-api-adapters govuk_app_config govuk_personalisation @@ -608,7 +606,6 @@ DEPENDENCIES rails (= 7.1.2) redis rubocop-govuk - sassc-rails shoulda-context simplecov sprockets-rails From 3423e335b11154fa57c814d45ece336e19b4bcba Mon Sep 17 00:00:00 2001 From: Jon Kirwan <87758239+jon-kirwan@users.noreply.github.com> Date: Thu, 23 Nov 2023 12:43:50 +0000 Subject: [PATCH 2/4] Configure builds - Create `dartsass.builds` initializer and add all Sass files to be compiled. See https://github.com/rails/dartsass-rails#configuring-builds - Create .keep - Update manifest file to use /builds directory - Ignore /builds Co-Authored-By: Martin Jones <28779939+MartinJJones@users.noreply.github.com> --- .gitignore | 2 ++ app/assets/builds/.keep | 0 app/assets/config/manifest.js | 6 +----- config/initializers/dartsass.rb | 8 ++++++++ 4 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 app/assets/builds/.keep create mode 100644 config/initializers/dartsass.rb diff --git a/.gitignore b/.gitignore index 66f40e9aa..a27f1d362 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,8 @@ tmp/* log/*.log public/assets +/app/assets/builds +!/app/assets/builds/.keep # See https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored .yarn/cache/ diff --git a/app/assets/builds/.keep b/app/assets/builds/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js index aed47ac5f..9f5b1cf07 100644 --- a/app/assets/config/manifest.js +++ b/app/assets/config/manifest.js @@ -1,9 +1,5 @@ //= link_tree ../images //= link application.js //= link test-dependencies.js -//= link application-ie8.css -//= link application-print.css -//= link application.css -//= link guides-print.css -//= link print.css //= link modules/base-target.js +//= link_tree ../builds diff --git a/config/initializers/dartsass.rb b/config/initializers/dartsass.rb new file mode 100644 index 000000000..fa7e16658 --- /dev/null +++ b/config/initializers/dartsass.rb @@ -0,0 +1,8 @@ +# config/initializers/dartsass.rb +Rails.application.config.dartsass.builds = { + "application-ie8.scss" => "application-ie8.css", + "application-print.scss" => "application-print.css", + "application.scss" => "application.css", + "guides-print.scss" => "guides-print.css", + "print.scss" => "print.css", +} From 2ee7ce9eb157fe2a2185bb6f22351403d2b895d2 Mon Sep 17 00:00:00 2001 From: Jon Kirwan <87758239+jon-kirwan@users.noreply.github.com> Date: Thu, 23 Nov 2023 12:43:30 +0000 Subject: [PATCH 3/4] Replace `image-url` asset helper instances Replace instances with CSS url() function. See rails/dartsass-rails#18. Co-Authored-By: Martin Jones <28779939+MartinJJones@users.noreply.github.com> --- app/assets/stylesheets/helpers/_draft.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/helpers/_draft.scss b/app/assets/stylesheets/helpers/_draft.scss index ff610c89d..bace99137 100644 --- a/app/assets/stylesheets/helpers/_draft.scss +++ b/app/assets/stylesheets/helpers/_draft.scss @@ -1,5 +1,5 @@ .draft main { - background-image: image-url("draft-watermark.png"); + background-image: url("draft-watermark.png"); background-repeat: repeat-y; background-position: 50% 0; background-size: contain; From 1a700c7337b60251276520cca20a8b947116954b Mon Sep 17 00:00:00 2001 From: Jon Kirwan <87758239+jon-kirwan@users.noreply.github.com> Date: Thu, 23 Nov 2023 12:41:21 +0000 Subject: [PATCH 4/4] Delete unused Sass config Co-Authored-By: Martin Jones <28779939+MartinJJones@users.noreply.github.com> --- config/environments/production.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/config/environments/production.rb b/config/environments/production.rb index 85fc53d4b..05a4df211 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -33,10 +33,6 @@ # Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile = false - # Rather than use a CSS compressor, use the SASS style to perform compression. - config.sass.style = :compressed - config.sass.line_comments = false - # Enable serving of images, stylesheets, and JavaScripts from an asset server. # config.asset_host = "http://assets.example.com"