From 11d0459c0050aaaaaf7849c45c63b40379bf5610 Mon Sep 17 00:00:00 2001 From: Dmitry Chekanov Date: Tue, 5 Jan 2016 12:06:25 +0300 Subject: [PATCH 1/2] Exclude external resources from r.js optimization Fixes #207. --- css-builder.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/css-builder.js b/css-builder.js index c7929df..8f3843b 100644 --- a/css-builder.js +++ b/css-builder.js @@ -7,7 +7,7 @@ define(['require', './normalize'], function(req, normalize) { if (config.optimizeCss == 'none') { return css; } - + if (typeof process !== "undefined" && process.versions && !!process.versions.node && require.nodeRequire) { try { var csso = require.nodeRequire('csso'); @@ -96,7 +96,7 @@ define(['require', './normalize'], function(req, normalize) { // NB add @media query support for media imports var importRegEx = /@import\s*(url)?\s*(('([^']*)'|"([^"]*)")|\(('([^']*)'|"([^"]*)"|([^\)]*))\))\s*;?/g; var absUrlRegEx = /^([^\:\/]+:\/)?\//; - + // Write Css module definition var writeCSSDefinition = "define('@writecss', function() {return function writeCss(c) {var d=document,a='appendChild',i='styleSheet',s=d.createElement('style');s.type='text/css';d.getElementsByTagName('head')[0][a](s);s[i]?s[i].cssText=c:s[a](d.createTextNode(c));};});"; @@ -123,11 +123,12 @@ define(['require', './normalize'], function(req, normalize) { siteRoot = siteRoot.replace(/\\/g, '/'); } + var fileUrl = req.toUrl(name + '.css'); + //external URLS don't get added (just like JS requires) - if (name.match(absUrlRegEx)) + if (fileUrl.match(absUrlRegEx)) return load(); - var fileUrl = req.toUrl(name + '.css'); if (isWindows) fileUrl = fileUrl.replace(/\\/g, '/'); @@ -157,13 +158,13 @@ define(['require', './normalize'], function(req, normalize) { cssAPI.write = function(pluginName, moduleName, write, parse) { var cssModule; - + //external URLS don't get added (just like JS requires) - if (moduleName.match(absUrlRegEx)) + if (!cssBuffer.hasOwnProperty(moduleName)) return; layerBuffer.push(cssBuffer[moduleName]); - + if (!global._requirejsCssData) { global._requirejsCssData = { usedBy: {css: true}, @@ -210,7 +211,7 @@ define(['require', './normalize'], function(req, normalize) { delete global._requirejsCssData; } } - + saveFile(outPath, compress(css)); }); From 83d49f475aa09c5ba29789a007ee9a18facacd3b Mon Sep 17 00:00:00 2001 From: Dmitry Chekanov Date: Tue, 20 Mar 2018 10:33:59 +0300 Subject: [PATCH 2/2] Fix handling of Unix paths --- css-builder.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/css-builder.js b/css-builder.js index 8f3843b..555976a 100644 --- a/css-builder.js +++ b/css-builder.js @@ -95,7 +95,6 @@ define(['require', './normalize'], function(req, normalize) { // NB add @media query support for media imports var importRegEx = /@import\s*(url)?\s*(('([^']*)'|"([^"]*)")|\(('([^']*)'|"([^"]*)"|([^\)]*))\))\s*;?/g; - var absUrlRegEx = /^([^\:\/]+:\/)?\//; // Write Css module definition var writeCSSDefinition = "define('@writecss', function() {return function writeCss(c) {var d=document,a='appendChild',i='styleSheet',s=d.createElement('style');s.type='text/css';d.getElementsByTagName('head')[0][a](s);s[i]?s[i].cssText=c:s[a](d.createTextNode(c));};});"; @@ -126,7 +125,7 @@ define(['require', './normalize'], function(req, normalize) { var fileUrl = req.toUrl(name + '.css'); //external URLS don't get added (just like JS requires) - if (fileUrl.match(absUrlRegEx)) + if (fileUrl.indexOf('://') !== -1) return load(); if (isWindows)