From bcf699f1459324be3ce0b9aa7874de6bc8497ed9 Mon Sep 17 00:00:00 2001 From: Steve Gravrock Date: Tue, 8 Apr 2025 18:00:55 -0700 Subject: [PATCH] Switch from grunt-css-url-embed to css-url-embed This eliminates some rickety indirect dependencies and is a big step towards removing Grunt. --- Gruntfile.js | 24 ++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Gruntfile.js b/Gruntfile.js index 33a7a2da..ec3820b2 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -12,6 +12,30 @@ module.exports = function(grunt) { require('load-grunt-tasks')(grunt); + grunt.registerMultiTask('cssUrlEmbed', "Embed URLs as base64 strings inside your stylesheets", function () { + var done = this.async(); + + import('css-url-embed').then(cssEmbed => { + for (const file of this.files) { + try { + grunt.log.subhead('Processing source file "' + file.src[0] + '"'); + const urls = cssEmbed.processFile(file.src[0], file.dest); + + for (const url of urls) { + grunt.log.ok('"' + url + '" embedded'); + } + + grunt.log.writeln('File "' + file.dest + '" created'); + } catch (e) { + grunt.log.error(e); + grunt.fail.warn('URL embedding failed\n'); + } + } + + done(); + }); + }); + grunt.loadTasks('grunt/tasks'); grunt.registerTask('default', ['sass:dist', "cssUrlEmbed"]); diff --git a/package.json b/package.json index f961e464..a238104a 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "devDependencies": { "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.24.0", + "css-url-embed": "github:sgravrock/css-url-embed", "eslint": "^9.24.0", "eslint-plugin-compat": "^6.0.2", "glob": "^10.2.3", @@ -44,7 +45,6 @@ "grunt-cli": "^1.3.2", "grunt-contrib-compress": "^2.0.0", "grunt-contrib-concat": "^2.0.0", - "grunt-css-url-embed": "^1.11.1", "grunt-sass": "^4.0.0", "jasmine": "^5.0.0", "jasmine-browser-runner": "github:jasmine/jasmine-browser-runner",