css-loader 5.2.3 → 5.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -125,8 +125,7 @@ module.exports = {
125
125
  Type: `Boolean|Function`
126
126
  Default: `true`
127
127
 
128
- Enables/Disables `url`/`image-set` functions handling.
129
- Control `url()` resolving. Absolute paths and root-relative URLs now resolving(Version [4.0.0](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#400-2020-07-25) and above).
128
+ Enables/Disables handling the CSS functions `url` and `image-set`. If set to `false`, `css-loader` will not parse any paths specified in `url` or `image-set`. A function can also be passed to control this behavior dynamically based on the path to the asset. Starting with version [4.0.0](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#400-2020-07-25), absolute paths are parsed based on the server root.
130
129
 
131
130
  Examples resolutions:
132
131
 
@@ -1132,6 +1131,38 @@ module.exports = {
1132
1131
 
1133
1132
  ## Examples
1134
1133
 
1134
+ ### Recommend
1135
+
1136
+ For `production` builds it's recommended to extract the CSS from your bundle being able to use parallel loading of CSS/JS resources later on.
1137
+ This can be achieved by using the [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin), because it creates separate css files.
1138
+ For `development` mode (including `webpack-dev-server`) you can use [style-loader](https://github.com/webpack-contrib/style-loader), because it injects CSS into the DOM using multiple <style></style> and works faster.
1139
+
1140
+ > i Do not use together `style-loader` and `mini-css-extract-plugin`.
1141
+
1142
+ **webpack.config.js**
1143
+
1144
+ ```js
1145
+ const MiniCssExtractPlugin = require("mini-css-extract-plugin");
1146
+ const devMode = process.env.NODE_ENV !== "production";
1147
+
1148
+ module.exports = {
1149
+ module: {
1150
+ rules: [
1151
+ {
1152
+ test: /\.(sa|sc|c)ss$/,
1153
+ use: [
1154
+ devMode ? "style-loader" : MiniCssExtractPlugin.loader,
1155
+ "css-loader",
1156
+ "postcss-loader",
1157
+ "sass-loader",
1158
+ ],
1159
+ },
1160
+ ],
1161
+ },
1162
+ plugins: [].concat(devMode ? [] : [new MiniCssExtractPlugin()]),
1163
+ };
1164
+ ```
1165
+
1135
1166
  ### Disable url resolving using the `/* webpackIgnore: true */` comment
1136
1167
 
1137
1168
  With the help of the `/* webpackIgnore: true */`comment, it is possible to disable sources handling for rules and for individual declarations.
@@ -1236,14 +1267,6 @@ module.exports = {
1236
1267
  };
1237
1268
  ```
1238
1269
 
1239
- ### Extract
1240
-
1241
- For production builds it's recommended to extract the CSS from your bundle being able to use parallel loading of CSS/JS resources later on.
1242
-
1243
- - This can be achieved by using the [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) to extract the CSS when running in production mode.
1244
-
1245
- - As an alternative, if seeking better development performance and css outputs that mimic production. [extract-css-chunks-webpack-plugin](https://github.com/faceyspacey/extract-css-chunks-webpack-plugin) offers a hot module reload friendly, extended version of mini-css-extract-plugin. HMR real CSS files in dev, works like mini-css in non-dev
1246
-
1247
1270
  ### Pure CSS, CSS modules and PostCSS
1248
1271
 
1249
1272
  When you have pure CSS (without CSS modules), CSS modules and PostCSS in your project you can use this setup:
package/dist/index.js CHANGED
@@ -98,8 +98,9 @@ async function loader(content, map, meta) {
98
98
 
99
99
  const icssPluginImports = [];
100
100
  const icssPluginApi = [];
101
+ const needToUseIcssPlugin = (0, _utils.shouldUseIcssPlugin)(options);
101
102
 
102
- if ((0, _utils.shouldUseIcssPlugin)(options)) {
103
+ if (needToUseIcssPlugin) {
103
104
  const icssResolver = this.getResolve({
104
105
  conditionNames: ["style"],
105
106
  extensions: [],
@@ -178,6 +179,6 @@ async function loader(content, map, meta) {
178
179
 
179
180
  const importCode = (0, _utils.getImportCode)(imports, options);
180
181
  const moduleCode = (0, _utils.getModuleCode)(result, api, replacements, options, this);
181
- const exportCode = (0, _utils.getExportCode)(exports, replacements, options);
182
+ const exportCode = (0, _utils.getExportCode)(exports, replacements, needToUseIcssPlugin, options);
182
183
  callback(null, `${importCode}${moduleCode}${exportCode}`);
183
184
  }
@@ -47,6 +47,12 @@ const plugin = (options = {}) => {
47
47
  context
48
48
  } = options;
49
49
  const resolvedUrl = await (0, _utils.resolveRequests)(resolver, context, [...new Set([normalizedUrl, request])]);
50
+
51
+ if (!resolvedUrl) {
52
+ return;
53
+ } // eslint-disable-next-line consistent-return
54
+
55
+
50
56
  return {
51
57
  url: resolvedUrl,
52
58
  prefix,
@@ -60,12 +66,14 @@ const plugin = (options = {}) => {
60
66
  const results = await Promise.all(tasks);
61
67
 
62
68
  for (let index = 0; index <= results.length - 1; index++) {
63
- const {
64
- url,
65
- prefix,
66
- tokens
67
- } = results[index];
68
- const newUrl = prefix ? `${prefix}!${url}` : url;
69
+ const item = results[index];
70
+
71
+ if (!item) {
72
+ // eslint-disable-next-line no-continue
73
+ continue;
74
+ }
75
+
76
+ const newUrl = item.prefix ? `${item.prefix}!${item.url}` : item.url;
69
77
  const importKey = newUrl;
70
78
  let importName = imports.get(importKey);
71
79
 
@@ -85,9 +93,9 @@ const plugin = (options = {}) => {
85
93
  });
86
94
  }
87
95
 
88
- for (const [replacementIndex, token] of Object.keys(tokens).entries()) {
96
+ for (const [replacementIndex, token] of Object.keys(item.tokens).entries()) {
89
97
  const replacementName = `___CSS_LOADER_ICSS_IMPORT_${index}_REPLACEMENT_${replacementIndex}___`;
90
- const localName = tokens[token];
98
+ const localName = item.tokens[token];
91
99
  importReplacements[token] = replacementName;
92
100
  options.replacements.push({
93
101
  replacementName,
@@ -155,12 +155,10 @@ const plugin = (options = {}) => {
155
155
  const needKeep = await options.filter(url, media);
156
156
 
157
157
  if (!needKeep) {
158
- return null;
158
+ return;
159
159
  }
160
160
  }
161
161
 
162
- atRule.remove();
163
-
164
162
  if (isRequestable) {
165
163
  const request = (0, _utils.requestify)(url, options.rootContext);
166
164
  const {
@@ -168,6 +166,13 @@ const plugin = (options = {}) => {
168
166
  context
169
167
  } = options;
170
168
  const resolvedUrl = await (0, _utils.resolveRequests)(resolver, context, [...new Set([request, url])]);
169
+
170
+ if (!resolvedUrl) {
171
+ return;
172
+ }
173
+
174
+ atRule.remove(); // eslint-disable-next-line consistent-return
175
+
171
176
  return {
172
177
  url: resolvedUrl,
173
178
  media,
@@ -176,6 +181,8 @@ const plugin = (options = {}) => {
176
181
  };
177
182
  }
178
183
 
184
+ atRule.remove(); // eslint-disable-next-line consistent-return
185
+
179
186
  return {
180
187
  url,
181
188
  media,
@@ -268,7 +268,7 @@ const plugin = (options = {}) => {
268
268
  const needKeep = await options.filter(url);
269
269
 
270
270
  if (!needKeep) {
271
- return null;
271
+ return;
272
272
  }
273
273
  }
274
274
 
@@ -282,18 +282,23 @@ const plugin = (options = {}) => {
282
282
  context
283
283
  } = options;
284
284
  const resolvedUrl = await (0, _utils.resolveRequests)(resolver, context, [...new Set([request, url])]);
285
+
286
+ if (!resolvedUrl) {
287
+ return;
288
+ } // eslint-disable-next-line consistent-return
289
+
290
+
285
291
  return { ...parsedDeclaration,
286
292
  url: resolvedUrl,
287
293
  hash
288
294
  };
289
295
  }));
290
- const results = await Promise.all(resolvedDeclarations);
291
296
  const urlToNameMap = new Map();
292
297
  const urlToReplacementMap = new Map();
293
298
  let hasUrlImportHelper = false;
294
299
 
295
- for (let index = 0; index <= results.length - 1; index++) {
296
- const item = results[index];
300
+ for (let index = 0; index <= resolvedDeclarations.length - 1; index++) {
301
+ const item = resolvedDeclarations[index];
297
302
 
298
303
  if (!item) {
299
304
  // eslint-disable-next-line no-continue
@@ -8,7 +8,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
8
8
 
9
9
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
10
10
 
11
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
11
+ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12
12
 
13
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
14
 
@@ -17,6 +17,10 @@ module.exports = function cssWithMappingToString(item) {
17
17
  content = _item[1],
18
18
  cssMapping = _item[3];
19
19
 
20
+ if (!cssMapping) {
21
+ return content;
22
+ }
23
+
20
24
  if (typeof btoa === "function") {
21
25
  // eslint-disable-next-line no-undef
22
26
  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));
package/dist/utils.js CHANGED
@@ -22,6 +22,7 @@ exports.resolveRequests = resolveRequests;
22
22
  exports.isUrlRequestable = isUrlRequestable;
23
23
  exports.sort = sort;
24
24
  exports.combineRequests = combineRequests;
25
+ exports.camelCase = camelCase;
25
26
  exports.WEBPACK_IGNORE_COMMENT_REGEXP = void 0;
26
27
 
27
28
  var _url = require("url");
@@ -38,8 +39,6 @@ var _postcssModulesExtractImports = _interopRequireDefault(require("postcss-modu
38
39
 
39
40
  var _postcssModulesScope = _interopRequireDefault(require("postcss-modules-scope"));
40
41
 
41
- var _camelcase = _interopRequireDefault(require("camelcase"));
42
-
43
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
44
43
 
45
44
  /*
@@ -52,6 +51,56 @@ exports.WEBPACK_IGNORE_COMMENT_REGEXP = WEBPACK_IGNORE_COMMENT_REGEXP;
52
51
  const regexSingleEscape = /[ -,.\/:-@[\]\^`{-~]/;
53
52
  const regexExcessiveSpaces = /(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g;
54
53
 
54
+ const preserveCamelCase = string => {
55
+ let result = string;
56
+ let isLastCharLower = false;
57
+ let isLastCharUpper = false;
58
+ let isLastLastCharUpper = false;
59
+
60
+ for (let i = 0; i < result.length; i++) {
61
+ const character = result[i];
62
+
63
+ if (isLastCharLower && /[\p{Lu}]/u.test(character)) {
64
+ result = `${result.slice(0, i)}-${result.slice(i)}`;
65
+ isLastCharLower = false;
66
+ isLastLastCharUpper = isLastCharUpper;
67
+ isLastCharUpper = true;
68
+ i += 1;
69
+ } else if (isLastCharUpper && isLastLastCharUpper && /[\p{Ll}]/u.test(character)) {
70
+ result = `${result.slice(0, i - 1)}-${result.slice(i - 1)}`;
71
+ isLastLastCharUpper = isLastCharUpper;
72
+ isLastCharUpper = false;
73
+ isLastCharLower = true;
74
+ } else {
75
+ isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;
76
+ isLastLastCharUpper = isLastCharUpper;
77
+ isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;
78
+ }
79
+ }
80
+
81
+ return result;
82
+ };
83
+
84
+ function camelCase(input) {
85
+ let result = input.trim();
86
+
87
+ if (result.length === 0) {
88
+ return "";
89
+ }
90
+
91
+ if (result.length === 1) {
92
+ return result.toLowerCase();
93
+ }
94
+
95
+ const hasUpperCase = result !== result.toLowerCase();
96
+
97
+ if (hasUpperCase) {
98
+ result = preserveCamelCase(result);
99
+ }
100
+
101
+ return result.replace(/^[_.\- ]+/, "").toLowerCase().replace(/[_.\- ]+([\p{Alpha}\p{N}_]|$)/gu, (_, p1) => p1.toUpperCase()).replace(/\d+([\p{Alpha}\p{N}_]|$)/gu, m => m.toUpperCase());
102
+ }
103
+
55
104
  function escape(string) {
56
105
  let output = "";
57
106
  let counter = 0;
@@ -259,7 +308,7 @@ function getValidLocalName(localName, exportLocalsConvention) {
259
308
  return dashesCamelCase(localName);
260
309
  }
261
310
 
262
- return (0, _camelcase.default)(localName);
311
+ return camelCase(localName);
263
312
  }
264
313
 
265
314
  const moduleRegExp = /\.module(s)?\.\w+$/i;
@@ -626,13 +675,19 @@ function dashesCamelCase(str) {
626
675
  return str.replace(/-+(\w)/g, (match, firstLetter) => firstLetter.toUpperCase());
627
676
  }
628
677
 
629
- function getExportCode(exports, replacements, options) {
678
+ function getExportCode(exports, replacements, needToUseIcssPlugin, options) {
630
679
  let code = "// Exports\n";
680
+
681
+ if (!needToUseIcssPlugin) {
682
+ code += `${options.esModule ? "export default" : "module.exports ="} ___CSS_LOADER_EXPORT___;\n`;
683
+ return code;
684
+ }
685
+
631
686
  let localsCode = "";
632
687
 
633
688
  const addExportToLocalsCode = (name, value) => {
634
689
  if (options.modules.namedExport) {
635
- localsCode += `export const ${name} = ${JSON.stringify(value)};\n`;
690
+ localsCode += `export var ${name} = ${JSON.stringify(value)};\n`;
636
691
  } else {
637
692
  if (localsCode) {
638
693
  localsCode += `,\n`;
@@ -650,7 +705,7 @@ function getExportCode(exports, replacements, options) {
650
705
  case "camelCase":
651
706
  {
652
707
  addExportToLocalsCode(name, value);
653
- const modifiedName = (0, _camelcase.default)(name);
708
+ const modifiedName = camelCase(name);
654
709
 
655
710
  if (modifiedName !== name) {
656
711
  addExportToLocalsCode(modifiedName, value);
@@ -661,7 +716,7 @@ function getExportCode(exports, replacements, options) {
661
716
 
662
717
  case "camelCaseOnly":
663
718
  {
664
- addExportToLocalsCode((0, _camelcase.default)(name), value);
719
+ addExportToLocalsCode(camelCase(name), value);
665
720
  break;
666
721
  }
667
722
 
@@ -719,10 +774,7 @@ function getExportCode(exports, replacements, options) {
719
774
  return code;
720
775
  }
721
776
 
722
- if (localsCode) {
723
- code += options.modules.namedExport ? localsCode : `___CSS_LOADER_EXPORT___.locals = {\n${localsCode}\n};\n`;
724
- }
725
-
777
+ code += options.modules.namedExport ? localsCode : `___CSS_LOADER_EXPORT___.locals = {${localsCode ? `\n${localsCode}\n` : ""}};\n`;
726
778
  code += `${options.esModule ? "export default" : "module.exports ="} ___CSS_LOADER_EXPORT___;\n`;
727
779
  return code;
728
780
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "css-loader",
3
- "version": "5.2.3",
3
+ "version": "5.2.7",
4
4
  "description": "css loader module for webpack",
5
5
  "license": "MIT",
6
6
  "repository": "webpack-contrib/css-loader",
@@ -23,7 +23,7 @@
23
23
  "build": "cross-env NODE_ENV=production babel src -d dist --copy-files",
24
24
  "postbuild": "npm run validate:runtime",
25
25
  "commitlint": "commitlint --from=master",
26
- "security": "npm audit",
26
+ "security": "npm audit --production",
27
27
  "lint:prettier": "prettier --list-different .",
28
28
  "lint:js": "eslint --cache .",
29
29
  "lint": "npm-run-all -l -p \"lint:**\"",
@@ -32,7 +32,7 @@
32
32
  "test:coverage": "npm run test:only -- --collectCoverageFrom=\"src/**/*.js\" --coverage",
33
33
  "pretest": "npm run lint",
34
34
  "test": "npm run test:coverage",
35
- "prepare": "npm run build",
35
+ "prepare": "husky install && npm run build",
36
36
  "release": "standard-version"
37
37
  },
38
38
  "files": [
@@ -42,10 +42,9 @@
42
42
  "webpack": "^4.27.0 || ^5.0.0"
43
43
  },
44
44
  "dependencies": {
45
- "camelcase": "^6.2.0",
46
45
  "icss-utils": "^5.1.0",
47
46
  "loader-utils": "^2.0.0",
48
- "postcss": "^8.2.10",
47
+ "postcss": "^8.2.15",
49
48
  "postcss-modules-extract-imports": "^3.0.0",
50
49
  "postcss-modules-local-by-default": "^4.0.0",
51
50
  "postcss-modules-scope": "^3.0.0",
@@ -55,41 +54,41 @@
55
54
  "semver": "^7.3.5"
56
55
  },
57
56
  "devDependencies": {
58
- "@babel/cli": "^7.13.14",
59
- "@babel/core": "^7.13.15",
60
- "@babel/preset-env": "^7.13.15",
61
- "@commitlint/cli": "^12.1.1",
62
- "@commitlint/config-conventional": "^12.1.1",
57
+ "@babel/cli": "^7.14.3",
58
+ "@babel/core": "^7.14.3",
59
+ "@babel/preset-env": "^7.14.2",
60
+ "@commitlint/cli": "^12.1.4",
61
+ "@commitlint/config-conventional": "^12.1.4",
63
62
  "@webpack-contrib/eslint-config-webpack": "^3.0.0",
64
63
  "babel-jest": "^26.6.3",
65
64
  "cross-env": "^7.0.3",
66
65
  "del": "^6.0.0",
67
66
  "del-cli": "^3.0.1",
68
67
  "es-check": "^5.2.3",
69
- "eslint": "^7.24.0",
70
- "eslint-config-prettier": "^8.2.0",
71
- "eslint-plugin-import": "^2.22.1",
68
+ "eslint": "^7.26.0",
69
+ "eslint-config-prettier": "^8.3.0",
70
+ "eslint-plugin-import": "^2.23.2",
72
71
  "file-loader": "^6.2.0",
73
- "husky": "^4.3.8",
72
+ "husky": "^6.0.0",
74
73
  "jest": "^26.6.3",
75
74
  "less": "^4.1.1",
76
75
  "less-loader": "^7.1.0",
77
- "lint-staged": "^10.5.4",
76
+ "lint-staged": "^11.0.0",
78
77
  "memfs": "^3.2.2",
79
- "mini-css-extract-plugin": "^1.4.1",
78
+ "mini-css-extract-plugin": "^1.6.0",
80
79
  "npm-run-all": "^4.1.5",
81
- "postcss-loader": "^4.0.4",
80
+ "postcss-loader": "^4.3.0",
82
81
  "postcss-preset-env": "^6.7.0",
83
- "prettier": "^2.1.2",
84
- "sass": "^1.32.8",
85
- "sass-loader": "^10.1.0",
86
- "standard-version": "^9.2.0",
82
+ "prettier": "^2.3.0",
83
+ "sass": "^1.32.13",
84
+ "sass-loader": "^10.2.0",
85
+ "standard-version": "^9.3.0",
87
86
  "strip-ansi": "^6.0.0",
88
87
  "style-loader": "^2.0.0",
89
88
  "stylus": "^0.54.8",
90
- "stylus-loader": "^4.3.0",
89
+ "stylus-loader": "^4.3.3",
91
90
  "url-loader": "^4.1.1",
92
- "webpack": "^5.33.2"
91
+ "webpack": "^5.37.1"
93
92
  },
94
93
  "keywords": [
95
94
  "webpack",
package/CHANGELOG.md DELETED
@@ -1,624 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
-
5
- ### [5.2.3](https://github.com/webpack-contrib/css-loader/compare/v5.2.2...v5.2.3) (2021-04-19)
6
-
7
- ### Bug Fixes
8
-
9
- * improve performance
10
-
11
- ### [5.2.2](https://github.com/webpack-contrib/css-loader/compare/v5.2.1...v5.2.2) (2021-04-16)
12
-
13
-
14
- ### Bug Fixes
15
-
16
- * avoid escape nonASCII characters in local names ([0722733](https://github.com/webpack-contrib/css-loader/commit/072273308a8ab4b7efdae31440689dc81978ca1d))
17
-
18
- ### [5.2.1](https://github.com/webpack-contrib/css-loader/compare/v5.2.0...v5.2.1) (2021-04-09)
19
-
20
-
21
- ### Bug Fixes
22
-
23
- * do not crash on unescaped svg data uri ([#1288](https://github.com/webpack-contrib/css-loader/issues/1288)) ([4f289c5](https://github.com/webpack-contrib/css-loader/commit/4f289c5e4df6c666fdf6dd3402560ae74d4bf7ee))
24
-
25
- ## [5.2.0](https://github.com/webpack-contrib/css-loader/compare/v5.1.4...v5.2.0) (2021-03-24)
26
-
27
-
28
- ### Features
29
-
30
- * support async functions for `url` and `import` options ([#1277](https://github.com/webpack-contrib/css-loader/issues/1277)) ([c5062db](https://github.com/webpack-contrib/css-loader/commit/c5062db3fc849d882a07b9f2c9f66f00325c8896))
31
-
32
- ### [5.1.4](https://github.com/webpack-contrib/css-loader/compare/v5.1.3...v5.1.4) (2021-03-24)
33
-
34
-
35
- ### Bug Fixes
36
-
37
- * crash with thread-loader ([#1281](https://github.com/webpack-contrib/css-loader/issues/1281)) ([7095a7c](https://github.com/webpack-contrib/css-loader/commit/7095a7ca7d985d5447aed80cf3e41a4f8c19b954))
38
-
39
- ### [5.1.3](https://github.com/webpack-contrib/css-loader/compare/v5.1.2...v5.1.3) (2021-03-15)
40
-
41
-
42
- ### Bug Fixes
43
-
44
- * the `auto` option works using inline module syntax ([#1274](https://github.com/webpack-contrib/css-loader/issues/1274)) ([1db2f4d](https://github.com/webpack-contrib/css-loader/commit/1db2f4df3ff9ae8f0667a2304853c8e7cdd0afc1))
45
- * ident generation for CSS modules using inline module syntax ([#1274](https://github.com/webpack-contrib/css-loader/issues/1274)) ([1db2f4d](https://github.com/webpack-contrib/css-loader/commit/1db2f4df3ff9ae8f0667a2304853c8e7cdd0afc1))
46
-
47
- ### [5.1.2](https://github.com/webpack-contrib/css-loader/compare/v5.1.1...v5.1.2) (2021-03-10)
48
-
49
-
50
- ### Bug Fixes
51
-
52
- * handling `@import` with spaces before and after and any extensions ([#1272](https://github.com/webpack-contrib/css-loader/issues/1272)) ([0c47cf7](https://github.com/webpack-contrib/css-loader/commit/0c47cf7ccbe3635900e8e8840650f69a7eca004d))
53
- * inline loader syntax in `@import` and modules ([3f49ed0](https://github.com/webpack-contrib/css-loader/commit/3f49ed0864457f9467f560856377c890c392aee7))
54
-
55
- ### [5.1.1](https://github.com/webpack-contrib/css-loader/compare/v5.1.0...v5.1.1) (2021-03-01)
56
-
57
-
58
- ### Bug Fixes
59
-
60
- * crash on modified AST from `postcss-loader` ([#1268](https://github.com/webpack-contrib/css-loader/issues/1268)) ([d2a1a84](https://github.com/webpack-contrib/css-loader/commit/d2a1a84afc63fdfb2a4ce6668ed9f2d7f1ba56ca))
61
-
62
- ## [5.1.0](https://github.com/webpack-contrib/css-loader/compare/v5.0.2...v5.1.0) (2021-02-25)
63
-
64
-
65
- ### Features
66
-
67
- * added support webpackIgnore comment ([#1264](https://github.com/webpack-contrib/css-loader/issues/1264)) ([53d40a9](https://github.com/webpack-contrib/css-loader/commit/53d40a9bb35a79e6a15308bbb7a01358f39816df))
68
-
69
- ### [5.0.2](https://github.com/webpack-contrib/css-loader/compare/v5.0.1...v5.0.2) (2021-02-08)
70
-
71
-
72
- ### Bug Fixes
73
-
74
- * pass query with hash to other loaders ([#1261](https://github.com/webpack-contrib/css-loader/issues/1261)) ([729a314](https://github.com/webpack-contrib/css-loader/commit/729a314529cd0607c374b07bdf425337f9a778d4))
75
-
76
- ### [5.0.1](https://github.com/webpack-contrib/css-loader/compare/v5.0.0...v5.0.1) (2020-11-04)
77
-
78
-
79
- ### Bug Fixes
80
-
81
- * sources in source maps have relative paths ([#1219](https://github.com/webpack-contrib/css-loader/issues/1219)) ([3229b3c](https://github.com/webpack-contrib/css-loader/commit/3229b3cca3cb5d762daeff57239a965b06fd7593))
82
-
83
- ## [5.0.0](https://github.com/webpack-contrib/css-loader/compare/v4.3.0...v5.0.0) (2020-10-13)
84
-
85
-
86
- ### ⚠ BREAKING CHANGES
87
-
88
- * migrate on PostCSS 8
89
- * runtime doesn't contain source maps code without `sourceMap: true`
90
- * returned value from the `getLocalIdent` escapes by default, the `exportName` value is always unescaped
91
- * Auto enable icss modules for all files for which `/\.icss\.\w+$/i` (the `modules.compileType` option is `icss`)
92
- * `[emoji]` placeholder was deprecated
93
- * `icss` option was removed (it was deprecated previously)
94
-
95
- ### Features
96
-
97
- * allow named exports to have underscores in names ([#1209](https://github.com/webpack-contrib/css-loader/issues/1209)) ([747d62b](https://github.com/webpack-contrib/css-loader/commit/747d62b75a878d8881f4819b96297667dc689b8f))
98
- * hide warning when you don't need handle `url()`/`@import` ([#1195](https://github.com/webpack-contrib/css-loader/issues/1195)) ([dd52931](https://github.com/webpack-contrib/css-loader/commit/dd52931150ed42f122d9017642437c26cc1b2422))
99
- * improve error message ([52412f6](https://github.com/webpack-contrib/css-loader/commit/52412f6d5a54745ee37a4a67f038455c26ba5772))
100
- * reduce runtime ([9f974be](https://github.com/webpack-contrib/css-loader/commit/9f974be81f5942d3afaf783529677bd541952fa3))
101
- * add fallback if custom getLocalIdent returns `null`/`undefined` ([#1193](https://github.com/webpack-contrib/css-loader/issues/1193)) ([0f95841](https://github.com/webpack-contrib/css-loader/commit/0f9584135e63f9f354043e7f414e0c1aad0edc6e))
102
-
103
- ## [4.3.0](https://github.com/webpack-contrib/css-loader/compare/v4.2.2...v4.3.0) (2020-09-08)
104
-
105
-
106
- ### Features
107
-
108
- * the `importLoaders` can be `string` ([#1178](https://github.com/webpack-contrib/css-loader/issues/1178)) ([ec58a7c](https://github.com/webpack-contrib/css-loader/commit/ec58a7cfda46443e35539d66b86685195fa5db03))
109
-
110
-
111
- ### Bug Fixes
112
-
113
- * line breaks in `url` function ([88b8ddc](https://github.com/webpack-contrib/css-loader/commit/88b8ddc1d78a2b6a917ed2dfe2f2a37cf6a84190))
114
-
115
- ### [4.2.2](https://github.com/webpack-contrib/css-loader/compare/v4.2.1...v4.2.2) (2020-08-24)
116
-
117
-
118
- ### Bug Fixes
119
-
120
- * source maps generation, source from source maps are now relative to `compiler.context` and use `webpack://` protocol ([#1169](https://github.com/webpack-contrib/css-loader/issues/1169)) ([fb5c53d](https://github.com/webpack-contrib/css-loader/commit/fb5c53d80b10ee698762238bb7b122aec8c5048d))
121
-
122
- ### [4.2.1](https://github.com/webpack-contrib/css-loader/compare/v4.2.0...v4.2.1) (2020-08-06)
123
-
124
-
125
- ### Bug Fixes
126
-
127
- * regression with the `exportOnlyLocals` option, now `locals` are not exported under the `locals` name, it was big regression, we apologize for that ([24c0a12](https://github.com/webpack-contrib/css-loader/commit/24c0a122d1396c08326a24f6184f5da09cf52ccc))
128
-
129
- ## [4.2.0](https://github.com/webpack-contrib/css-loader/compare/v4.1.1...v4.2.0) (2020-07-31)
130
-
131
-
132
- ### Features
133
-
134
- * add `module.type` option, the `icss` option is deprecated ([#1150](https://github.com/webpack-contrib/css-loader/issues/1150)) ([68f72af](https://github.com/webpack-contrib/css-loader/commit/68f72af2a09111f74dcacbf7af019fe7eb40cb6c))
135
-
136
- ### [4.1.1](https://github.com/webpack-contrib/css-loader/compare/v4.1.0...v4.1.1) (2020-07-30)
137
-
138
-
139
- ### Bug Fixes
140
-
141
- * remove unnecessary `console` call ([#1148](https://github.com/webpack-contrib/css-loader/issues/1148)) ([b1b90ca](https://github.com/webpack-contrib/css-loader/commit/b1b90caaea8eb045177749729340c7906454a84b))
142
-
143
- ## [4.1.0](https://github.com/webpack-contrib/css-loader/compare/v4.0.0...v4.1.0) (2020-07-29)
144
-
145
-
146
- ### Features
147
-
148
- * add `icss` option ([#1140](https://github.com/webpack-contrib/css-loader/issues/1140)) ([a8ec7da](https://github.com/webpack-contrib/css-loader/commit/a8ec7da42234e0b2eb061d2a920669940bcbdf05))
149
- * support absolute paths ([f9ba0ce](https://github.com/webpack-contrib/css-loader/commit/f9ba0ce11789770c4c9220478e9c98dbd432a5d6))
150
-
151
-
152
- ### Bug Fixes
153
-
154
- * do not crash with `data` URLs ([#1142](https://github.com/webpack-contrib/css-loader/issues/1142)) ([91bc64b](https://github.com/webpack-contrib/css-loader/commit/91bc64b81abfeffd174639a8fdf2366412c11426))
155
- * performance ([#1144](https://github.com/webpack-contrib/css-loader/issues/1144)) ([4f1baa2](https://github.com/webpack-contrib/css-loader/commit/4f1baa211eb27b0b281ba9f262fa12e8aaefc0ba))
156
-
157
- ## [4.0.0](https://github.com/webpack-contrib/css-loader/compare/v3.6.0...v4.0.0) (2020-07-25)
158
-
159
-
160
- ### ⚠ BREAKING CHANGES
161
-
162
- * minimum required `Node.js` version is `10.13.0`
163
- * minimum required `webpack` version is `4.27.0`
164
- * the `esModule` option is `true` by default
165
- * default value of the `sourceMap` option depends on the `devtool` option
166
- * `icss` plugin disable by default, you need to setup the `modules` option to enable it
167
- * the `modules` option is `true` by default for all files matching `/\.module\.\w+$/i.test(filename)` regular expression, `module.auto` is `true` by default
168
- * the `modules.context` option was renamed to the `modules.localIdentContext` option
169
- * default the `modules.localIdentContext` value is `compiler.context` for the `module.getLocalIdent` option
170
- * the `modules.hashPrefix` option was renamed to the `modules.localIdentHashPrefix` option
171
- * the `localsConvention` option was moved and renamed to the `modules.exportLocalsConvention` option
172
- * the `getLocalIndent` option should be always `Function` and should always return `String` value
173
- * the `onlyLocals` option was moved and renamed to the `modules.exportOnlyLocals` option
174
- * function arguments of the `import` option were changed, it is now `function(url, media, resourcePath) {}`
175
- * inline syntax was changed, please write `~` before the file request, i.e. rewrite `url(~!!loader!package/img.png)` to `url(!!loader!~package/img.png)`
176
-
177
-
178
- ### Features
179
-
180
- * `@value` supports importing `url()` ([#1126](https://github.com/webpack-contrib/css-loader/issues/1126)) ([7f49a0a](https://github.com/webpack-contrib/css-loader/commit/7f49a0a6047846bb2e432558365e19d4a0dfb366))
181
- * improve `url()` resolving algorithm ([bc19ddd](https://github.com/webpack-contrib/css-loader/commit/bc19ddd8779dafbc2a420870a3cb841041ce9c7c))
182
- * named export for locals ([#1108](https://github.com/webpack-contrib/css-loader/issues/1108)) ([d139ec1](https://github.com/webpack-contrib/css-loader/commit/d139ec1d763f9944550b31f2a75183e488dd1224))
183
- * respected the `style` field from package.json ([#1099](https://github.com/webpack-contrib/css-loader/issues/1099)) ([edf5347](https://github.com/webpack-contrib/css-loader/commit/edf5347e4203a62e50b87248a83da198afdc6eba))
184
- * support `file:` protocol ([5604205](https://github.com/webpack-contrib/css-loader/commit/560420567eb0e1a635648b7f4ff0365db475384c))
185
- * support server relative URLs
186
-
187
- ### Bug Fixes
188
-
189
- * resolution algorithm, you don't need `~` inside packages in `node_modules` ([76f1480](https://github.com/webpack-contrib/css-loader/commit/76f1480b14265369ac5dc8dbbce467cfb8e814c5))
190
-
191
-
192
- ## [3.6.0](https://github.com/webpack-contrib/css-loader/compare/v3.5.3...v3.6.0) (2020-06-13)
193
-
194
-
195
- ### Features
196
-
197
- * allow `modules.auto` to be a filter function ([#1086](https://github.com/webpack-contrib/css-loader/issues/1086)) ([0902353](https://github.com/webpack-contrib/css-loader/commit/0902353c328d4d18e8ed2755fe9c83c03c53df81))
198
-
199
- ### [3.5.3](https://github.com/webpack-contrib/css-loader/compare/v3.5.2...v3.5.3) (2020-04-24)
200
-
201
-
202
- ### Bug Fixes
203
-
204
- * add file from an error to file dependencies ([841423f](https://github.com/webpack-contrib/css-loader/commit/841423fca2932c18f8ac0cf0a1f0012fc0a62fb6))
205
- * avoid query string in source maps ([#1082](https://github.com/webpack-contrib/css-loader/issues/1082)) ([f64de13](https://github.com/webpack-contrib/css-loader/commit/f64de13f7377eff9501348cf26213212ca696913))
206
-
207
- ### [3.5.2](https://github.com/webpack-contrib/css-loader/compare/v3.5.1...v3.5.2) (2020-04-10)
208
-
209
-
210
- ### Bug Fixes
211
-
212
- * schema for the `modules.auto` option ([#1075](https://github.com/webpack-contrib/css-loader/issues/1075)) ([8c9ffe7](https://github.com/webpack-contrib/css-loader/commit/8c9ffe7c6df11232b63173c757baa71ed36f6145))
213
-
214
- ### [3.5.1](https://github.com/webpack-contrib/css-loader/compare/v3.5.0...v3.5.1) (2020-04-07)
215
-
216
-
217
- ### Bug Fixes
218
-
219
- * don't generate an invalid code for `locals` ([#1072](https://github.com/webpack-contrib/css-loader/issues/1072)) ([866b84a](https://github.com/webpack-contrib/css-loader/commit/866b84acd7fd47651f741ca1e6cf7081c2bbe357))
220
-
221
- ## [3.5.0](https://github.com/webpack-contrib/css-loader/compare/v3.4.2...v3.5.0) (2020-04-06)
222
-
223
-
224
- ### Features
225
-
226
- * accept semver compatible postcss AST ([#1049](https://github.com/webpack-contrib/css-loader/issues/1049)) ([14c4faa](https://github.com/webpack-contrib/css-loader/commit/14c4faae87305c9b965de4f468bb1e118f6b84cc))
227
- * allow to determinate css modules using the `modules.auto` option, please look at an [example](https://github.com/webpack-contrib/css-loader#pure-css-css-modules-and-postcss) of how you can simplify the configuration. ([#1067](https://github.com/webpack-contrib/css-loader/issues/1067)) ([c673cf4](https://github.com/webpack-contrib/css-loader/commit/c673cf418e901c5050bc697eb45401dc9a42c477))
228
- * the `modules.exportGlobals` option for export global classes and ids ([#1069](https://github.com/webpack-contrib/css-loader/issues/1069)) ([519e5f4](https://github.com/webpack-contrib/css-loader/commit/519e5f41539f4c87ec96db0a908aaadecc284a6c))
229
- * the `modules.mode` option may be a function ([#1065](https://github.com/webpack-contrib/css-loader/issues/1065)) ([0d8ac3b](https://github.com/webpack-contrib/css-loader/commit/0d8ac3bcb831bc747657c914aba106b93840737e))
230
-
231
- ### [3.4.2](https://github.com/webpack-contrib/css-loader/compare/v3.4.1...v3.4.2) (2020-01-10)
232
-
233
-
234
- ### Bug Fixes
235
-
236
- * do not duplicate css on `composes` ([#1040](https://github.com/webpack-contrib/css-loader/issues/1040)) ([df79602](https://github.com/webpack-contrib/css-loader/commit/df7960277be20ec80e9be1a41ac53baf69847fa0))
237
-
238
- ### [3.4.1](https://github.com/webpack-contrib/css-loader/compare/v3.4.0...v3.4.1) (2020-01-03)
239
-
240
-
241
- ### Bug Fixes
242
-
243
- * do not output `undefined` when sourceRoot is unavailable ([#1036](https://github.com/webpack-contrib/css-loader/issues/1036)) ([ded2a79](https://github.com/webpack-contrib/css-loader/commit/ded2a797271f2adf864bf92300621c024974bc79))
244
- * don't output invalid es5 code when locals do not exists ([#1035](https://github.com/webpack-contrib/css-loader/issues/1035)) ([b60e62a](https://github.com/webpack-contrib/css-loader/commit/b60e62a655719cc1779fae7d577af6ad6cf42135))
245
-
246
- ## [3.4.0](https://github.com/webpack-contrib/css-loader/compare/v3.3.1...v3.4.0) (2019-12-17)
247
-
248
-
249
- ### Features
250
-
251
- * `esModule` option ([#1026](https://github.com/webpack-contrib/css-loader/issues/1026)) ([d358cdb](https://github.com/webpack-contrib/css-loader/commit/d358cdbe2c026afafa0279003cb6c8a3eff4c419))
252
-
253
-
254
- ### Bug Fixes
255
-
256
- * logic for order and media queries for imports ([#1018](https://github.com/webpack-contrib/css-loader/issues/1018)) ([65450d9](https://github.com/webpack-contrib/css-loader/commit/65450d9c04790ccc9fb06eac81ea6d8f3cdbfaac))
257
-
258
- ### [3.3.2](https://github.com/webpack-contrib/css-loader/compare/v3.3.1...v3.3.2) (2019-12-12)
259
-
260
-
261
- ### Bug Fixes
262
-
263
- * logic for order and media queries for imports ([1fb5134](https://github.com/webpack-contrib/css-loader/commit/1fb51340a7719b6f5b517cb71ea85ec5d45c1199))
264
-
265
- ### [3.3.1](https://github.com/webpack-contrib/css-loader/compare/v3.3.0...v3.3.1) (2019-12-12)
266
-
267
-
268
- ### Bug Fixes
269
-
270
- * better handling url functions and an url in `@import` at-rules
271
- * reduce count of `require` ([#1014](https://github.com/webpack-contrib/css-loader/issues/1014)) ([e091d27](https://github.com/webpack-contrib/css-loader/commit/e091d2709c29ac57ed0106af8ec3b581cbda7a9c))
272
-
273
- ## [3.3.0](https://github.com/webpack-contrib/css-loader/compare/v3.2.1...v3.3.0) (2019-12-09)
274
-
275
-
276
- ### Features
277
-
278
- * support `pure` css modules ([#1008](https://github.com/webpack-contrib/css-loader/issues/1008)) ([6177af5](https://github.com/webpack-contrib/css-loader/commit/6177af5596566fead13a8f66d5abcb4dc2b744db))
279
-
280
-
281
- ### Bug Fixes
282
-
283
- * do not crash when an assert return `null` or `undefined` ([#1006](https://github.com/webpack-contrib/css-loader/issues/1006)) ([6769783](https://github.com/webpack-contrib/css-loader/commit/67697833725e1cff12a14663390bbe4c65ea36d2))
284
- * reduce count of `require` ([#1004](https://github.com/webpack-contrib/css-loader/issues/1004)) ([80e9662](https://github.com/webpack-contrib/css-loader/commit/80e966280f2477c5c0e4553d3be3a04511fea381))
285
-
286
- ### [3.2.1](https://github.com/webpack-contrib/css-loader/compare/v3.2.0...v3.2.1) (2019-12-02)
287
-
288
-
289
- ### Bug Fixes
290
-
291
- * add an additional space after the escape sequence ([#998](https://github.com/webpack-contrib/css-loader/issues/998)) ([0961304](https://github.com/webpack-contrib/css-loader/commit/0961304020832fc9ca70cc708f4366e1f868e765))
292
- * compatibility with ES modules syntax and hash in `url` function ([#1001](https://github.com/webpack-contrib/css-loader/issues/1001)) ([8f4d6f5](https://github.com/webpack-contrib/css-loader/commit/8f4d6f508187513347106a436eda993f874065f1))
293
-
294
- ## [3.2.0](https://github.com/webpack-contrib/css-loader/compare/v3.1.0...v3.2.0) (2019-08-06)
295
-
296
-
297
- ### Bug Fixes
298
-
299
- * replace `.` characters in localIndent to `-` character (regression) ([#982](https://github.com/webpack-contrib/css-loader/issues/982)) ([967fb66](https://github.com/webpack-contrib/css-loader/commit/967fb66))
300
-
301
-
302
- ### Features
303
-
304
- * support es modules for assets loader ([#984](https://github.com/webpack-contrib/css-loader/issues/984)) ([9c5126c](https://github.com/webpack-contrib/css-loader/commit/9c5126c))
305
-
306
- ## [3.1.0](https://github.com/webpack-contrib/css-loader/compare/v3.0.0...v3.1.0) (2019-07-18)
307
-
308
-
309
- ### Bug Fixes
310
-
311
- * converting all (including reserved and control) filesystem characters to `-` (it was regression in `3.0.0` version) ([#972](https://github.com/webpack-contrib/css-loader/issues/972)) ([f51859b](https://github.com/webpack-contrib/css-loader/commit/f51859b))
312
- * default context should be undefined instead of null ([#965](https://github.com/webpack-contrib/css-loader/issues/965)) ([9c32885](https://github.com/webpack-contrib/css-loader/commit/9c32885))
313
-
314
-
315
- ### Features
316
-
317
- * allow `modules.getLocalIdent` to return a falsy value ([#963](https://github.com/webpack-contrib/css-loader/issues/963)) ([9c3571c](https://github.com/webpack-contrib/css-loader/commit/9c3571c))
318
- * improved validation error messages ([65e4fc0](https://github.com/webpack-contrib/css-loader/commit/65e4fc0))
319
-
320
-
321
-
322
- ## [3.0.0](https://github.com/webpack-contrib/css-loader/compare/v2.1.1...v3.0.0) (2019-06-11)
323
-
324
-
325
- ### Bug Fixes
326
-
327
- * avoid the "from" argument must be of type string error ([#908](https://github.com/webpack-contrib/css-loader/issues/908)) ([e5dfd23](https://github.com/webpack-contrib/css-loader/commit/e5dfd23))
328
- * invert `Function` behavior for `url` and `import` options ([#939](https://github.com/webpack-contrib/css-loader/issues/939)) ([e9eb5ad](https://github.com/webpack-contrib/css-loader/commit/e9eb5ad))
329
- * properly export locals with escaped characters ([#917](https://github.com/webpack-contrib/css-loader/issues/917)) ([a0efcda](https://github.com/webpack-contrib/css-loader/commit/a0efcda))
330
- * property handle non css characters in localIdentName ([#920](https://github.com/webpack-contrib/css-loader/issues/920)) ([d3a0a3c](https://github.com/webpack-contrib/css-loader/commit/d3a0a3c))
331
-
332
-
333
- ### Features
334
-
335
- * modules options now accepts object config ([#937](https://github.com/webpack-contrib/css-loader/issues/937)) ([1d7a464](https://github.com/webpack-contrib/css-loader/commit/1d7a464))
336
- * support `@value` at-rule in selectors ([#941](https://github.com/webpack-contrib/css-loader/issues/941)) ([05a42e2](https://github.com/webpack-contrib/css-loader/commit/05a42e2))
337
-
338
-
339
- ### BREAKING CHANGES
340
-
341
- * minimum required nodejs version is 8.9.0
342
- * `@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)
343
- * invert `{Function}` behavior for `url` and `import` options (need return `true` when you want handle `url`/`@import` and return `false` if not)
344
- * `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`)
345
- * `exportOnlyLocals` option was remove in favor `onlyLocals` option
346
- * `modules` option now can be `{Object}` and allow to setup `CSS Modules` options:
347
- * `localIdentName` option was removed in favor `modules.localIdentName` option
348
- * `context` option was remove in favor `modules.context` option
349
- * `hashPrefix` option was removed in favor `modules.hashPrefix` option
350
- * `getLocalIdent` option was removed in favor `modules.getLocalIdent` option
351
- * `localIdentRegExp` option was removed in favor `modules.localIdentRegExp` option
352
-
353
-
354
-
355
- <a name="2.1.1"></a>
356
- ## [2.1.1](https://github.com/webpack-contrib/css-loader/compare/v2.1.0...v2.1.1) (2019-03-07)
357
-
358
-
359
- ### Bug Fixes
360
-
361
- * do not break selector with escaping ([#896](https://github.com/webpack-contrib/css-loader/issues/896)) ([0ba8c66](https://github.com/webpack-contrib/css-loader/commit/0ba8c66))
362
- * source map generation when `sourceRoot` is present ([#901](https://github.com/webpack-contrib/css-loader/issues/901)) ([e9ce745](https://github.com/webpack-contrib/css-loader/commit/e9ce745))
363
- * sourcemap generating when previous loader pass sourcemap as string ([#905](https://github.com/webpack-contrib/css-loader/issues/905)) ([3797e4d](https://github.com/webpack-contrib/css-loader/commit/3797e4d))
364
-
365
-
366
-
367
- <a name="2.1.0"></a>
368
- # [2.1.0](https://github.com/webpack-contrib/css-loader/compare/v2.0.2...v2.1.0) (2018-12-25)
369
-
370
-
371
- ### Features
372
-
373
- * support `image-set` without `url` ([#879](https://github.com/webpack-contrib/css-loader/issues/879)) ([21884e2](https://github.com/webpack-contrib/css-loader/commit/21884e2))
374
-
375
-
376
-
377
- <a name="2.0.2"></a>
378
- ## [2.0.2](https://github.com/webpack-contrib/css-loader/compare/v2.0.1...v2.0.2) (2018-12-21)
379
-
380
-
381
- ### Bug Fixes
382
-
383
- * inappropriate modification of animation keywords ([#876](https://github.com/webpack-contrib/css-loader/issues/876)) ([dfb2f8e](https://github.com/webpack-contrib/css-loader/commit/dfb2f8e))
384
-
385
-
386
-
387
- <a name="2.0.1"></a>
388
- # [2.0.1](https://github.com/webpack-contrib/css-loader/compare/v2.0.0...v2.0.1) (2018-12-14)
389
-
390
-
391
- ### Bug Fixes
392
-
393
- * safe checking if params are present for at rule ([#871](https://github.com/webpack-contrib/css-loader/issues/871)) ([a88fed1](https://github.com/webpack-contrib/css-loader/commit/a88fed1))
394
- * `getLocalIdent` now accepts `false` value ([#865](https://github.com/webpack-contrib/css-loader/issues/865)) ([1825e8a](https://github.com/webpack-contrib/css-loader/commit/1825e8a))
395
-
396
-
397
-
398
- <a name="2.0.0"></a>
399
- # [2.0.0](https://github.com/webpack-contrib/css-loader/compare/v1.0.1...v2.0.0) (2018-12-07)
400
-
401
-
402
- ### Bug Fixes
403
-
404
- * broken unucode characters ([#850](https://github.com/webpack-contrib/css-loader/issues/850)) ([f599c70](https://github.com/webpack-contrib/css-loader/commit/f599c70))
405
- * correctly processing `urls()` with `?#hash` ([#803](https://github.com/webpack-contrib/css-loader/issues/803)) ([417d105](https://github.com/webpack-contrib/css-loader/commit/417d105))
406
- * don't break loader on invalid or not exists url or import token ([#827](https://github.com/webpack-contrib/css-loader/issues/827)) ([9e52d26](https://github.com/webpack-contrib/css-loader/commit/9e52d26))
407
- * don't duplicate import with same media in different case ([#819](https://github.com/webpack-contrib/css-loader/issues/819)) ([9f66e33](https://github.com/webpack-contrib/css-loader/commit/9f66e33))
408
- * emit warnings on broken `import` at-rules ([#806](https://github.com/webpack-contrib/css-loader/issues/806)) ([4bdf08b](https://github.com/webpack-contrib/css-loader/commit/4bdf08b))
409
- * handle uppercase `URL` in `import` at-rules ([#818](https://github.com/webpack-contrib/css-loader/issues/818)) ([3ebdcd5](https://github.com/webpack-contrib/css-loader/commit/3ebdcd5))
410
- * inconsistent generate class names for css modules on difference os ([#812](https://github.com/webpack-contrib/css-loader/issues/812)) ([0bdf9b7](https://github.com/webpack-contrib/css-loader/commit/0bdf9b7))
411
- * reduce number of `require` for `urls()` ([#854](https://github.com/webpack-contrib/css-loader/issues/854)) ([3338656](https://github.com/webpack-contrib/css-loader/commit/3338656))
412
- * support deduplication of string module ids (optimization.namedModules) ([#789](https://github.com/webpack-contrib/css-loader/issues/789)) ([e3bb83a](https://github.com/webpack-contrib/css-loader/commit/e3bb83a))
413
- * support module resolution in `composes` ([#845](https://github.com/webpack-contrib/css-loader/issues/845)) ([453248f](https://github.com/webpack-contrib/css-loader/commit/453248f))
414
- * same `urls()` resolving logic for `modules` (`local` and `global`) and without modules ([#843](https://github.com/webpack-contrib/css-loader/issues/843)) ([fdcf687](https://github.com/webpack-contrib/css-loader/commit/fdcf687))
415
-
416
- ### Features
417
-
418
- * allow to disable css modules and **disable their by default** ([#842](https://github.com/webpack-contrib/css-loader/issues/842)) ([889dc7f](https://github.com/webpack-contrib/css-loader/commit/889dc7f))
419
- * disable `import` option doesn't affect on `composes` ([#822](https://github.com/webpack-contrib/css-loader/issues/822)) ([f9aa73c](https://github.com/webpack-contrib/css-loader/commit/f9aa73c))
420
- * allow to filter `urls` ([#856](https://github.com/webpack-contrib/css-loader/issues/856)) ([5e702e7](https://github.com/webpack-contrib/css-loader/commit/5e702e7))
421
- * allow to filter `import` at-rules ([#857](https://github.com/webpack-contrib/css-loader/issues/857)) ([5e6034c](https://github.com/webpack-contrib/css-loader/commit/5e6034c))
422
- * emit warning on invalid `urls()` ([#832](https://github.com/webpack-contrib/css-loader/issues/832)) ([da95db8](https://github.com/webpack-contrib/css-loader/commit/da95db8))
423
- * added `exportOnlyLocals` option ([#824](https://github.com/webpack-contrib/css-loader/issues/824)) ([e9327c0](https://github.com/webpack-contrib/css-loader/commit/e9327c0))
424
- * reuse `postcss` ast from other loaders (i.e `postcss-loader`) ([#840](https://github.com/webpack-contrib/css-loader/issues/840)) ([1dad1fb](https://github.com/webpack-contrib/css-loader/commit/1dad1fb))
425
- * schema options ([b97d997](https://github.com/webpack-contrib/css-loader/commit/b97d997))
426
-
427
-
428
- ### BREAKING CHANGES
429
-
430
- * 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')`.
431
- * by default css modules are disabled (now `modules: false` disable all css modules features), you can return old behaviour change this on `modules: 'global'`
432
- * `css-loader/locals` was dropped in favor `exportOnlyLocals` option
433
- * `import` option only affect on `import` at-rules and doesn't affect on `composes` declarations
434
- * invalid `@import` at rules now emit warnings
435
- * use `postcss@7`
436
-
437
-
438
-
439
- <a name="1.0.1"></a>
440
- ## [1.0.1](https://github.com/webpack-contrib/css-loader/compare/v1.0.0...v1.0.1) (2018-10-29)
441
-
442
-
443
- ### Bug Fixes
444
-
445
- * **loader:** trim unquoted import urls ([#783](https://github.com/webpack-contrib/css-loader/issues/783)) ([21fcddf](https://github.com/webpack-contrib/css-loader/commit/21fcddf))
446
-
447
-
448
-
449
- <a name="1.0.0"></a>
450
- # [1.0.0](https://github.com/webpack-contrib/css-loader/compare/v0.28.11...v1.0.0) (2018-07-06)
451
-
452
-
453
- ### BREAKING CHANGES
454
-
455
- * remove `minimize` option, use [`postcss-loader`](https://github.com/postcss/postcss-loader) with [`cssnano`](https://github.com/cssnano/cssnano) or use [`optimize-cssnano-plugin`](https://github.com/intervolga/optimize-cssnano-plugin) plugin
456
- * remove `module` option, use `modules` option instead
457
- * remove `camelcase` option, use `camelCase` option instead
458
- * remove `root` option, use [`postcss-loader`](https://github.com/postcss/postcss-loader) with [`postcss-url`](https://github.com/postcss/postcss-url) plugin
459
- * remove `alias` option, use [`resolve.alias`](https://webpack.js.org/configuration/resolve/) feature or use [`postcss-loader`](https://github.com/postcss/postcss-loader) with [`postcss-url`](https://github.com/postcss/postcss-url) plugin
460
- * update `postcss` to `6` version
461
- * minimum require `nodejs` version is `6.9`
462
- * minimum require `webpack` version is `4`
463
-
464
-
465
-
466
- <a name="0.28.11"></a>
467
- ## [0.28.11](https://github.com/webpack-contrib/css-loader/compare/v0.28.10...v0.28.11) (2018-03-16)
468
-
469
-
470
- ### Bug Fixes
471
-
472
- * **lib/processCss:** don't check `mode` for `url` handling (`options.modules`) ([#698](https://github.com/webpack-contrib/css-loader/issues/698)) ([c788450](https://github.com/webpack-contrib/css-loader/commit/c788450))
473
-
474
-
475
-
476
- <a name="0.28.10"></a>
477
- ## [0.28.10](https://github.com/webpack-contrib/css-loader/compare/v0.28.9...v0.28.10) (2018-02-22)
478
-
479
-
480
- ### Bug Fixes
481
-
482
- * **getLocalIdent:** add `rootContext` support (`webpack >= v4.0.0`) ([#681](https://github.com/webpack-contrib/css-loader/issues/681)) ([9f876d2](https://github.com/webpack-contrib/css-loader/commit/9f876d2))
483
-
484
-
485
-
486
- <a name="0.28.9"></a>
487
- ## [0.28.9](https://github.com/webpack-contrib/css-loader/compare/v0.28.8...v0.28.9) (2018-01-17)
488
-
489
-
490
- ### Bug Fixes
491
-
492
- * ignore invalid URLs (`url()`) ([#663](https://github.com/webpack-contrib/css-loader/issues/663)) ([d1d8221](https://github.com/webpack-contrib/css-loader/commit/d1d8221))
493
-
494
-
495
-
496
- <a name="0.28.8"></a>
497
- ## [0.28.8](https://github.com/webpack-contrib/css-loader/compare/v0.28.7...v0.28.8) (2018-01-05)
498
-
499
-
500
- ### Bug Fixes
501
-
502
- * **loader:** correctly check if source map is `undefined` ([#641](https://github.com/webpack-contrib/css-loader/issues/641)) ([0dccfa9](https://github.com/webpack-contrib/css-loader/commit/0dccfa9))
503
- * proper URL escaping and wrapping (`url()`) ([#627](https://github.com/webpack-contrib/css-loader/issues/627)) ([8897d44](https://github.com/webpack-contrib/css-loader/commit/8897d44))
504
-
505
-
506
-
507
- <a name="0.28.7"></a>
508
- ## [0.28.7](https://github.com/webpack/css-loader/compare/v0.28.6...v0.28.7) (2017-08-30)
509
-
510
-
511
- ### Bug Fixes
512
-
513
- * pass resolver to `localsLoader` (`options.alias`) ([#601](https://github.com/webpack/css-loader/issues/601)) ([8f1b57c](https://github.com/webpack/css-loader/commit/8f1b57c))
514
-
515
-
516
-
517
- <a name="0.28.6"></a>
518
- ## [0.28.6](https://github.com/webpack/css-loader/compare/v0.28.5...v0.28.6) (2017-08-30)
519
-
520
-
521
- ### Bug Fixes
522
-
523
- * add support for aliases starting with `/` (`options.alias`) ([#597](https://github.com/webpack/css-loader/issues/597)) ([63567f2](https://github.com/webpack/css-loader/commit/63567f2))
524
-
525
-
526
-
527
- <a name="0.28.5"></a>
528
- ## [0.28.5](https://github.com/webpack/css-loader/compare/v0.28.4...v0.28.5) (2017-08-17)
529
-
530
-
531
- ### Bug Fixes
532
-
533
- * match mutliple dashes (`options.camelCase`) ([#556](https://github.com/webpack/css-loader/issues/556)) ([1fee601](https://github.com/webpack/css-loader/commit/1fee601))
534
- * stricter `[@import](https://github.com/import)` tolerance ([#593](https://github.com/webpack/css-loader/issues/593)) ([2e4ec09](https://github.com/webpack/css-loader/commit/2e4ec09))
535
-
536
-
537
-
538
- <a name="0.28.4"></a>
539
- ## [0.28.4](https://github.com/webpack/css-loader/compare/v0.28.3...v0.28.4) (2017-05-30)
540
-
541
-
542
- ### Bug Fixes
543
-
544
- * preserve leading underscore in class names ([#543](https://github.com/webpack/css-loader/issues/543)) ([f6673c8](https://github.com/webpack/css-loader/commit/f6673c8))
545
-
546
-
547
-
548
- <a name="0.28.3"></a>
549
- ## [0.28.3](https://github.com/webpack/css-loader/compare/v0.28.2...v0.28.3) (2017-05-25)
550
-
551
-
552
- ### Bug Fixes
553
-
554
- * correct plugin order for CSS Modules ([#534](https://github.com/webpack/css-loader/issues/534)) ([b90f492](https://github.com/webpack/css-loader/commit/b90f492))
555
-
556
-
557
-
558
- <a name="0.28.2"></a>
559
- ## [0.28.2](https://github.com/webpack/css-loader/compare/v0.28.1...v0.28.2) (2017-05-22)
560
-
561
-
562
- ### Bug Fixes
563
-
564
- * source maps path on `windows` ([#532](https://github.com/webpack/css-loader/issues/532)) ([c3d0d91](https://github.com/webpack/css-loader/commit/c3d0d91))
565
-
566
-
567
-
568
- <a name="0.28.1"></a>
569
- ## [0.28.1](https://github.com/webpack/css-loader/compare/v0.28.0...v0.28.1) (2017-05-02)
570
-
571
-
572
- ### Bug Fixes
573
-
574
- * allow to specify a full hostname as a root URL ([#521](https://github.com/webpack/css-loader/issues/521)) ([06d27a1](https://github.com/webpack/css-loader/commit/06d27a1))
575
- * case insensitivity of [@import](https://github.com/import) ([#514](https://github.com/webpack/css-loader/issues/514)) ([de4356b](https://github.com/webpack/css-loader/commit/de4356b))
576
- * don't handle empty [@import](https://github.com/import) and url() ([#513](https://github.com/webpack/css-loader/issues/513)) ([868fc94](https://github.com/webpack/css-loader/commit/868fc94))
577
- * imported variables are replaced in exports if followed by a comma ([#504](https://github.com/webpack/css-loader/issues/504)) ([956bad7](https://github.com/webpack/css-loader/commit/956bad7))
578
- * loader now correctly handles `url` with space(s) ([#495](https://github.com/webpack/css-loader/issues/495)) ([534ea55](https://github.com/webpack/css-loader/commit/534ea55))
579
- * url with a trailing space is now handled correctly ([#494](https://github.com/webpack/css-loader/issues/494)) ([e1ec4f2](https://github.com/webpack/css-loader/commit/e1ec4f2))
580
- * use `btoa` instead `Buffer` ([#501](https://github.com/webpack/css-loader/issues/501)) ([fbb0714](https://github.com/webpack/css-loader/commit/fbb0714))
581
-
582
-
583
- ### Performance Improvements
584
-
585
- * generate source maps only when explicitly set ([#478](https://github.com/webpack/css-loader/issues/478)) ([b8f5c8f](https://github.com/webpack/css-loader/commit/b8f5c8f))
586
-
587
-
588
-
589
- <a name="0.28.0"></a>
590
- # [0.28.0](https://github.com/webpack/css-loader/compare/v0.27.3...v0.28.0) (2017-03-30)
591
-
592
-
593
- ### Features
594
-
595
- * add alias feature to rewrite URLs ([#274](https://github.com/webpack/css-loader/issues/274)) ([c8db489](https://github.com/webpack/css-loader/commit/c8db489))
596
-
597
-
598
-
599
- <a name="0.27.3"></a>
600
- ## [0.27.3](https://github.com/webpack/css-loader/compare/v0.27.2...v0.27.3) (2017-03-13)
601
-
602
-
603
-
604
- <a name="0.27.2"></a>
605
- # [0.27.2](https://github.com/webpack/css-loader/compare/v0.27.1...v0.27.2) (2017-03-12)
606
-
607
- <a name="0.27.1"></a>
608
- # [0.27.1](https://github.com/webpack/css-loader/compare/v0.27.0...v0.27.1) (2017-03-10)
609
-
610
- <a name="0.27.0"></a>
611
- # [0.27.0](https://github.com/webpack/css-loader/compare/v0.26.2...v0.27.0) (2017-03-10)
612
-
613
-
614
- ### Bug Fixes
615
-
616
- * **sourcemaps:** use abs paths & remove sourceRoot ([c769ac3](https://github.com/webpack/css-loader/commit/c769ac3))
617
- * `minimizeOptions` should be `query.minimize`! ([16c0858](https://github.com/webpack/css-loader/commit/16c0858))
618
- * do not export duplicate keys ([#420](https://github.com/webpack/css-loader/issues/420)) ([a2b85d7](https://github.com/webpack/css-loader/commit/a2b85d7))
619
-
620
-
621
- ### Features
622
-
623
- * allow removal of original class name ([#445](https://github.com/webpack/css-loader/issues/445)) ([3f78361](https://github.com/webpack/css-loader/commit/3f78361))
624
- * Include the sourceMappingURL & sourceURL when toString() ([6da7e90](https://github.com/webpack/css-loader/commit/6da7e90))