I asked this question to Acquia and they said this would be a good issue to file.
Say I start with the following libraries.yml file:
wet-boew:
remote: http://wet-boew.github.io
license:
name: MIT
gpl-compatible: true
js:
/libraries/wet-boew/js/ie8-wet-boew.min.js: { preprocess: 0, browsers: { IE: 'lt IE 9', '!IE': false }, minified: true }
/libraries/wet-boew/js/wet-boew.min.js: { preprocess: 0, browsers: { IE: 'gte IE 9', '!IE': true }, minified: true }
/libraries/wet-boew/js/ie8-wet-boew2.min.js: { preprocess: 0, browsers: { IE: 'lt IE 9', '!IE': false }, minified: true }
css:
theme:
/libraries/theme-wet-boew/css/theme.min.css: { preprocess: 0, browsers: { IE: 'gte IE 9', '!IE': true }, minified: true }
/libraries/theme-wet-boew/css/ie8-theme.min.css: { preprocess: 0, browsers: { IE: 'lt IE 9', '!IE': false }, minified: true }
dependencies:
- core/jquery
Scenario 1
We will be concerned with the theme.min.css file which has the following:
/libraries/theme-wet-boew/css/theme.min.css: { preprocess: 0, browsers: { IE: 'gte IE 9', '!IE': true }, minified: true }
Renders as:
<!--[if gte IE 9]><!-->
<link rel="stylesheet" href="/libraries/theme-wet-boew/css/theme.min.css?o7ffmp" media="all" />
<!--<![endif]-->
Scenario 2
Remove the "preprocess: 0":
/libraries/theme-wet-boew/css/theme.min.css: { browsers: { IE: 'gte IE 9', '!IE': true }, minified: true }
Renders as:
<style media="all">
...
@import url("/libraries/theme-wet-boew/css/theme.min.css?o7ffpe");
</style>
Scenario 3 (Same as 2 but with CSS aggregation enabled)
/libraries/theme-wet-boew/css/theme.min.css: { browsers: { IE: 'gte IE 9', '!IE': true }, minified: true }
Renders as:
<!--[if gte IE 9]><!-->
<link rel="stylesheet" href="/sites/default/files/css/css_VZpiHxSgGoUjWkJA0t0RSBFIEC_TcHfrSUfx7ZlItPI.css?o7eovd" media="all" />
<!--<![endif]-->
So my question is why does Scenario #2 lose the browsers attributes and go to @import but no issue when css aggregation enabled. This just doesn't make sense to me, though I could be missing something.
Comments
Comment #2
joelpittetThat is a great issue summary, and those scenarios would make great functional tests I think. #2 shouldn't lose the browser, IMO
Comment #14
catchConditional comment support has been removed from Drupal core, so marking this as outdated See https://www.drupal.org/node/3102997
We do have some other issues open around @import and async/defer but I couldn't find the correct ones to link to.