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

sylus created an issue. See original summary.

joelpittet’s picture

Issue tags: +Needs tests

That is a great issue summary, and those scenarios would make great functional tests I think. #2 shouldn't lose the browser, IMO

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.0-beta1 was released on August 3, 2016, which means new developments and disruptive changes should now be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

catch’s picture

Status: Active » Closed (outdated)

Conditional 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.