Skip to content

6.0.0+ generates invalid CSS when used in development mode #1365

Closed
webpack-contrib/mini-css-extract-plugin
#815
@alan-agius4

Description

@alan-agius4
  • Operating System: darwin x64
  • Node Version: 14.17.1
  • yarn 1.22.10
  • webpack Version: 5.51.1
  • css-loader Version: 6.2.0

Expected Behavior

When used with extract css mini, css-loader 6.0.0+ breaks absolute @import rules in development mode because it generates invalid CSS since these rules must precede all other types of rules, except @charset.

See: https://developer.mozilla.org/en-US/docs/Web/CSS/@import#description

Actual Behavior

Development mode (incorrect)

/*!****************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./file.css ***!
  \****************************************************************************************/
body {
    font-family: 'Manrope';
}
/*!******************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./file-2.css ***!
  \******************************************************************************************/
@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@500;800&display=swap);
/*!**********************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./file-2.css (1) ***!
  \**********************************************************************************************/

production (correct)

@import url(https://fonts.googleapis.com/css2?family=Manrope:wght@500;800&display=swap);
body {
    font-family: 'Manrope';
}

Code

https://github.com/alan-agius4/css-loader-issue-import

How Do We Reproduce?

git clone git@github.com:alan-agius4/css-loader-issue-import.git
cd css-loader-issue-import
yarn
yarn webpack

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions