Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

## <a href="https://github.com/webpack-contrib/css-loader/compare/v4.2.1...v4.2.2">4.2.2</a> (2020-08-24)

## Bug Fixes

- source maps generation, source from source maps are now relative to `compiler.context` and use `webpack://` protocol (#1169) (fb5c53d)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v4.2.0...v4.2.1">4.2.1</a> (2020-08-06)

## Bug Fixes

- regression with the `exportOnlyLocals` option, now `locals` are not exported under the `locals` name, it was big regression, we apologize for that (24c0a12)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v4.1.1...v4.2.0">4.2.0</a> (2020-07-31)

## Features

- add `module.type` option, the `icss` option is deprecated (#1150) (68f72af)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v4.1.0...v4.1.1">4.1.1</a> (2020-07-30)

## Bug Fixes

- remove unnecessary `console` call (#1148) (b1b90ca)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v4.0.0...v4.1.0">4.1.0</a> (2020-07-29)

## Features

- add `icss` option (#1140) (a8ec7da)
- support absolute paths (f9ba0ce)

## Bug Fixes

- do not crash with `data` URLs (#1142) (91bc64b)
- performance (#1144) (4f1baa2)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v3.6.0...v4.0.0">4.0.0</a> (2020-07-25)

## ⚠ BREAKING CHANGES

- minimum required `Node.js` version is `10.13.0`
- minimum required `webpack` version is `4.27.0`
- the `esModule` option is `true` by default
- default value of the `sourceMap` option depends on the `devtool` option
- `icss` plugin disable by default, you need to setup the `modules` option to enable it
- the `modules` option is `true` by default for all files matching `/\.module\.\w+$/i.test(filename)` regular expression, `module.auto` is `true` by default
- the `modules.context` option was renamed to the `modules.localIdentContext` option
- default the `modules.localIdentContext` value is `compiler.context` for the `module.getLocalIdent` option
- the `modules.hashPrefix` option was renamed to the `modules.localIdentHashPrefix` option
- the `localsConvention` option was moved and renamed to the `modules.exportLocalsConvention` option
- the `getLocalIndent` option should be always `Function` and should always return `String` value
- the `onlyLocals` option was moved and renamed to the `modules.exportOnlyLocals` option
- function arguments of the `import` option were changed, it is now `function(url, media, resourcePath) {}`
- inline syntax was changed, please write `~` before the file request, i.e. rewrite `url(~!!loader!package/img.png)` to `url(!!loader!~package/img.png)`

## Features

- `@value` supports importing `url()` (#1126) (7f49a0a)
- improve `url()` resolving algorithm (bc19ddd)
- named export for locals (#1108) (d139ec1)
- respected the `style` field from package.json (#1099) (edf5347)
- support `file:` protocol (5604205)
- support server relative URLs

## Bug Fixes

- resolution algorithm, you don't need `~` inside packages in `node_modules` (76f1480)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v3.5.3...v3.6.0">3.6.0</a> (2020-06-13)

## Features

- allow `modules.auto` to be a filter function (#1086) (0902353)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v3.5.2...v3.5.3">3.5.3</a> (2020-04-24)

## Bug Fixes

- add file from an error to file dependencies (841423f)
- avoid query string in source maps (#1082) (f64de13)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v3.5.1...v3.5.2">3.5.2</a> (2020-04-10)

## Bug Fixes

- schema for the `modules.auto` option (#1075) (8c9ffe7)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v3.5.0...v3.5.1">3.5.1</a> (2020-04-07)

## Bug Fixes

- don't generate an invalid code for `locals` (#1072) (866b84a)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v3.4.2...v3.5.0">3.5.0</a> (2020-04-06)

## Features

- accept semver compatible postcss AST (#1049) (14c4faa)
- allow to determinate css modules using the `modules.auto` option, please look at an example of how you can simplify the configuration. (#1067) (c673cf4)
- the `modules.exportGlobals` option for export global classes and ids (#1069) (519e5f4)
- the `modules.mode` option may be a function (#1065) (0d8ac3b)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v3.4.1...v3.4.2">3.4.2</a> (2020-01-10)

## Bug Fixes

- do not duplicate css on `composes` (#1040) (df79602)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v3.4.0...v3.4.1">3.4.1</a> (2020-01-03)

## Bug Fixes

- do not output `undefined` when sourceRoot is unavailable (#1036) (ded2a79)
- don't output invalid es5 code when locals do not exists (#1035) (b60e62a)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v3.3.1...v3.4.0">3.4.0</a> (2019-12-17)

## Features

- `esModule` option (#1026) (d358cdb)

## Bug Fixes

- logic for order and media queries for imports (#1018) (65450d9)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v3.3.1...v3.3.2">3.3.2</a> (2019-12-12)

## Bug Fixes

- logic for order and media queries for imports (1fb5134)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v3.3.0...v3.3.1">3.3.1</a> (2019-12-12)

## Bug Fixes

- better handling url functions and an url in `@import` at-rules
- reduce count of `require` (#1014) (e091d27)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v3.2.1...v3.3.0">3.3.0</a> (2019-12-09)

## Features

- support `pure` css modules (#1008) (6177af5)

## Bug Fixes

- do not crash when an assert return `null` or `undefined` (#1006) (6769783)
- reduce count of `require` (#1004) (80e9662)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v3.2.0...v3.2.1">3.2.1</a> (2019-12-02)

## Bug Fixes

- add an additional space after the escape sequence (#998) (0961304)
- compatibility with ES modules syntax and hash in `url` function (#1001) (8f4d6f5)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v3.1.0...v3.2.0">3.2.0</a> (2019-08-06)

## Bug Fixes

- replace `.` characters in localIndent to `-` character (regression) (#982) (967fb66)

## Features

- support es modules for assets loader (#984) (9c5126c)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v3.0.0...v3.1.0">3.1.0</a> (2019-07-18)

## Bug Fixes

- converting all (including reserved and control) filesystem characters to `-` (it was regression in `3.0.0` version) (#972) (f51859b)
- default context should be undefined instead of null (#965) (9c32885)

## Features

- allow `modules.getLocalIdent` to return a falsy value (#963) (9c3571c)
- improved validation error messages (65e4fc0)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v2.1.1...v3.0.0">3.0.0</a> (2019-06-11)

## Bug Fixes

- avoid the "from" argument must be of type string error (#908) (e5dfd23)
- invert `Function` behavior for `url` and `import` options (#939) (e9eb5ad)
- properly export locals with escaped characters (#917) (a0efcda)
- property handle non css characters in localIdentName (#920) (d3a0a3c)

## Features

- modules options now accepts object config (#937) (1d7a464)
- support `@value` at-rule in selectors (#941) (05a42e2)

## BREAKING CHANGES

- minimum required nodejs version is 8.9.0
- `@value` at rules now support in `selector`, recommends checking all `@values` at-rule usage (hint: you can add prefix to all `@value` at-rules, for example `@value v-foo: black;` or `@value m-foo: screen and (max-width: 12450px)`, and then do upgrade)
- invert `{Function}` behavior for `url` and `import` options (need return `true` when you want handle `url`/`@import` and return `false` if not)
- `camelCase` option was remove in favor `localsConvention` option, also it is accept only `{String}` value (use `camelCase` value if you previously value was `true` and `asIs` if you previously value was `false`)
- `exportOnlyLocals` option was remove in favor `onlyLocals` option
- `modules` option now can be `{Object}` and allow to setup `CSS Modules` options:
  - `localIdentName` option was removed in favor `modules.localIdentName` option
  - `context` option was remove in favor `modules.context` option
  - `hashPrefix` option was removed in favor `modules.hashPrefix` option
  - `getLocalIdent` option was removed in favor `modules.getLocalIdent` option
  - `localIdentRegExp` option was removed in favor `modules.localIdentRegExp` option

# <a href="https://github.com/webpack-contrib/css-loader/compare/v2.1.0...v2.1.1">2.1.1</a> (2019-03-07)

## Bug Fixes

- do not break selector with escaping (#896) (0ba8c66)
- source map generation when `sourceRoot` is present (#901) (e9ce745)
- sourcemap generating when previous loader pass sourcemap as string (#905) (3797e4d)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v2.0.2...v2.1.0">2.1.0</a> (2018-12-25)

### Features

- support `image-set` without `url` (#879) (21884e2)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v2.0.1...v2.0.2">2.0.2</a> (2018-12-21)

### Bug Fixes

- inappropriate modification of animation keywords (#876) (dfb2f8e)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v2.0.0...v2.0.1">2.0.1</a> (2018-12-14)

### Bug Fixes

- safe checking if params are present for at rule (#871) (a88fed1)
- `getLocalIdent` now accepts `false` value (#865) (1825e8a)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v1.0.1...v2.0.0">2.0.0</a> (2018-12-07)

### Bug Fixes

- broken unucode characters (#850) (f599c70)
- correctly processing `urls()` with `?#hash` (#803) (417d105)
- don't break loader on invalid or not exists url or import token (#827) (9e52d26)
- don't duplicate import with same media in different case (#819) (9f66e33)
- emit warnings on broken `import` at-rules (#806) (4bdf08b)
- handle uppercase `URL` in `import` at-rules (#818) (3ebdcd5)
- inconsistent generate class names for css modules on difference os (#812) (0bdf9b7)
- reduce number of `require` for `urls()` (#854) (3338656)
- support deduplication of string module ids (optimization.namedModules) (#789) (e3bb83a)
- support module resolution in `composes` (#845) (453248f)
- same `urls()` resolving logic for `modules` (`local` and `global`) and without modules (#843) (fdcf687)

### Features

- allow to disable css modules and disable their by default (#842) (889dc7f)
- disable `import` option doesn't affect on `composes` (#822) (f9aa73c)
- allow to filter `urls` (#856) (5e702e7)
- allow to filter `import` at-rules (#857) (5e6034c)
- emit warning on invalid `urls()` (#832) (da95db8)
- added `exportOnlyLocals` option (#824) (e9327c0)
- reuse `postcss` ast from other loaders (i.e `postcss-loader`) (#840) (1dad1fb)
- schema options (b97d997)

### BREAKING CHANGES

- resolving logic for `url()` and `import` at-rules works the same everywhere, it does not matter whether css modules are enabled (with `global` and `local` module) or not. Examples - ‘url('image.png’)`as`require('./image.png')`,`url('./image.png')`as`require('./image.png')`,`url('~module/image.png')`as`require('module/image.png')`.`
- `by default css modules are disabled (now`modules: false`disable all css modules features), you can return old behaviour change this on`modules: 'global'`*`css-loader/locals`was dropped in favor`exportOnlyLocals`option *`import`option only affect on`import`at-rules and doesn't affect on`composes`declarations`
- `invalid`@import`at rules now emit warnings`
- `use`postcss@7`

## <a href="https://github.com/webpack-contrib/css-loader/compare/v1.0.0...v1.0.1">1.0.1</a> (2018-10-29)

### Bug Fixes

- loader: trim unquoted import urls (#783) (21fcddf)

# <a href="https://github.com/webpack-contrib/css-loader/compare/v0.28.11...v1.0.0">1.0.0</a> (2018-07-06)

### BREAKING CHANGES

- remove `minimize` option, use `postcss-loader` with `cssnano` or use `optimize-cssnano-plugin` plugin
- remove `module` option, use `modules` option instead
- remove `camelcase` option, use `camelCase` option instead
- remove `root` option, use `postcss-loader` with `postcss-url` plugin
- remove `alias` option, use `resolve.alias` feature or use `postcss-loader` with `postcss-url` plugin
- update `postcss` to `6` version
- minimum require `nodejs` version is `6.9`
- minimum require `webpack` version is `4`

## <a href="https://github.com/webpack-contrib/css-loader/compare/v0.28.10...v0.28.11">0.28.11</a> (2018-03-16)

### Bug Fixes

- lib/processCss: don't check `mode` for `url` handling (`options.modules`) (#698) (c788450)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v0.28.9...v0.28.10">0.28.10</a> (2018-02-22)

### Bug Fixes

- getLocalIdent: add `rootContext` support (`webpack >= v4.0.0`) (#681) (9f876d2)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v0.28.8...v0.28.9">0.28.9</a> (2018-01-17)

### Bug Fixes

- ignore invalid URLs (`url()`) (#663) (d1d8221)

## <a href="https://github.com/webpack-contrib/css-loader/compare/v0.28.7...v0.28.8">0.28.8</a> (2018-01-05)

### Bug Fixes

- loader: correctly check if source map is `undefined` (#641) (0dccfa9)
- proper URL escaping and wrapping (`url()`) (#627) (8897d44)

## <a href="https://github.com/webpack/css-loader/compare/v0.28.6...v0.28.7">0.28.7</a> (2017-08-30)

### Bug Fixes

- pass resolver to `localsLoader` (`options.alias`) (#601) (8f1b57c)

## <a href="https://github.com/webpack/css-loader/compare/v0.28.5...v0.28.6">0.28.6</a> (2017-08-30)

### Bug Fixes

- add support for aliases starting with `/` (`options.alias`) (#597) (63567f2)

## <a href="https://github.com/webpack/css-loader/compare/v0.28.4...v0.28.5">0.28.5</a> (2017-08-17)

### Bug Fixes

- match mutliple dashes (`options.camelCase`) (#556) (1fee601)
- stricter `[@import](https://github.com/import)` tolerance (#593) (2e4ec09)

## <a href="https://github.com/webpack/css-loader/compare/v0.28.3...v0.28.4">0.28.4</a> (2017-05-30)

### Bug Fixes

- preserve leading underscore in class names (#543) (f6673c8)

## <a href="https://github.com/webpack/css-loader/compare/v0.28.2...v0.28.3">0.28.3</a> (2017-05-25)

### Bug Fixes

- correct plugin order for CSS Modules (#534) (b90f492)

## <a href="https://github.com/webpack/css-loader/compare/v0.28.1...v0.28.2">0.28.2</a> (2017-05-22)

### Bug Fixes

- source maps path on `windows` (#532) (c3d0d91)

## <a href="https://github.com/webpack/css-loader/compare/v0.28.0...v0.28.1">0.28.1</a> (2017-05-02)

### Bug Fixes

- allow to specify a full hostname as a root URL (#521) (06d27a1)
- case insensitivity of @import (#514) (de4356b)
- don't handle empty @import and url() (#513) (868fc94)
- imported variables are replaced in exports if followed by a comma (#504) (956bad7)
- loader now correctly handles `url` with space(s) (#495) (534ea55)
- url with a trailing space is now handled correctly (#494) (e1ec4f2)
- use `btoa` instead `Buffer` (#501) (fbb0714)

### Performance Improvements

- generate source maps only when explicitly set (#478) (b8f5c8f)

# <a href="https://github.com/webpack/css-loader/compare/v0.27.3...v0.28.0">0.28.0</a> (2017-03-30)

### Features

- add alias feature to rewrite URLs (#274) (c8db489)

## <a href="https://github.com/webpack/css-loader/compare/v0.27.2...v0.27.3">0.27.3</a> (2017-03-13)

# <a href="https://github.com/webpack/css-loader/compare/v0.27.1...v0.27.2">0.27.2</a> (2017-03-12)

# <a href="https://github.com/webpack/css-loader/compare/v0.27.0...v0.27.1">0.27.1</a> (2017-03-10)

# <a href="https://github.com/webpack/css-loader/compare/v0.26.2...v0.27.0">0.27.0</a> (2017-03-10)

### Bug Fixes

- sourcemaps: use abs paths & remove sourceRoot (c769ac3)
- `minimizeOptions` should be `query.minimize`! (16c0858)
- do not export duplicate keys (#420) (a2b85d7)

### Features

- allow removal of original class name (#445) (3f78361)
- Include the sourceMappingURL & sourceURL when toString() (6da7e90)