css-loader 5.2.7 → 6.0.0

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
@@ -21,6 +21,8 @@ The `css-loader` interprets `@import` and `url()` like `import/require()` and wi
21
21
 
22
22
  ## Getting Started
23
23
 
24
+ > ⚠ To use css-loader, webpack@5 is required
25
+
24
26
  To begin, you'll need to install `css-loader`:
25
27
 
26
28
  ```console
@@ -50,10 +52,6 @@ module.exports = {
50
52
  };
51
53
  ```
52
54
 
53
- **Only for webpack v4:**
54
-
55
- Good loaders for requiring your assets are the [file-loader](https://github.com/webpack/file-loader) and the [url-loader](https://github.com/webpack/url-loader) which you should specify in your config (see [below](https://github.com/webpack-contrib/css-loader#assets)).
56
-
57
55
  And run `webpack` via your preferred method.
58
56
 
59
57
  ### `toString`
@@ -111,21 +109,24 @@ module.exports = {
111
109
 
112
110
  ## Options
113
111
 
114
- | Name | Type | Default | Description |
115
- | :-----------------------------------: | :-------------------------: | :----------------: | :--------------------------------------------------------------------- |
116
- | **[`url`](#url)** | `{Boolean\|Function}` | `true` | Enables/Disables `url`/`image-set` functions handling |
117
- | **[`import`](#import)** | `{Boolean\|Function}` | `true` | Enables/Disables `@import` at-rules handling |
118
- | **[`modules`](#modules)** | `{Boolean\|String\|Object}` | `{auto: true}` | Enables/Disables CSS Modules and their configuration |
119
- | **[`sourceMap`](#sourcemap)** | `{Boolean}` | `compiler.devtool` | Enables/Disables generation of source maps |
120
- | **[`importLoaders`](#importloaders)** | `{Number}` | `0` | Enables/Disables or setups number of loaders applied before CSS loader |
121
- | **[`esModule`](#esmodule)** | `{Boolean}` | `true` | Use ES modules syntax |
112
+ | Name | Type | Default | Description |
113
+ | :-----------------------------------: | :-------------------------: | :----------------: | :----------------------------------------------------------------------------------------------------------------------- |
114
+ | **[`url`](#url)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `url()`/`image-set()` functions handling |
115
+ | **[`import`](#import)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `@import` at-rules handling |
116
+ | **[`modules`](#modules)** | `{Boolean\|String\|Object}` | `{auto: true}` | Allows to enables/disables or setup CSS Modules options |
117
+ | **[`sourceMap`](#sourcemap)** | `{Boolean}` | `compiler.devtool` | Enables/Disables generation of source maps |
118
+ | **[`importLoaders`](#importloaders)** | `{Number}` | `0` | Allows enables/disables or setups number of loaders applied before CSS loader for `@import`/CSS Modules and ICSS imports |
119
+ | **[`esModule`](#esmodule)** | `{Boolean}` | `true` | Use ES modules syntax |
122
120
 
123
121
  ### `url`
124
122
 
125
- Type: `Boolean|Function`
123
+ Type: `Boolean|Object`
126
124
  Default: `true`
127
125
 
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.
126
+ Allow to enable/disables handling the CSS functions `url` and `image-set`.
127
+ If set to `false`, `css-loader` will not parse any paths specified in `url` or `image-set`.
128
+ A function can also be passed to control this behavior dynamically based on the path to the asset.
129
+ 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.
129
130
 
130
131
  Examples resolutions:
131
132
 
@@ -168,7 +169,7 @@ module.exports = {
168
169
  };
169
170
  ```
170
171
 
171
- #### `Function`
172
+ #### `Object`
172
173
 
173
174
  Allow to filter `url()`. All filtered `url()` will not be resolved (left in the code as they were written).
174
175
 
@@ -182,15 +183,17 @@ module.exports = {
182
183
  test: /\.css$/i,
183
184
  loader: "css-loader",
184
185
  options: {
185
- url: (url, resourcePath) => {
186
- // resourcePath - path to css file
186
+ url: {
187
+ filter: (url, resourcePath) => {
188
+ // resourcePath - path to css file
187
189
 
188
- // Don't handle `img.png` urls
189
- if (url.includes("img.png")) {
190
- return false;
191
- }
190
+ // Don't handle `img.png` urls
191
+ if (url.includes("img.png")) {
192
+ return false;
193
+ }
192
194
 
193
- return true;
195
+ return true;
196
+ },
194
197
  },
195
198
  },
196
199
  },
@@ -201,10 +204,10 @@ module.exports = {
201
204
 
202
205
  ### `import`
203
206
 
204
- Type: `Boolean|Function`
207
+ Type: `Boolean|Object`
205
208
  Default: `true`
206
209
 
207
- Enables/Disables `@import` at-rules handling.
210
+ Allows to enables/disables `@import` at-rules handling.
208
211
  Control `@import` resolving. Absolute urls in `@import` will be moved in runtime code.
209
212
 
210
213
  Examples resolutions:
@@ -249,7 +252,16 @@ module.exports = {
249
252
  };
250
253
  ```
251
254
 
252
- #### `Function`
255
+ #### `Object`
256
+
257
+ | Name | Type | Default | Description |
258
+ | :---------------------: | :----------: | :---------: | :------------------------ |
259
+ | **[`filter`](#filter)** | `{Function}` | `undefined` | Allow to filter `@import` |
260
+
261
+ ##### `filter`
262
+
263
+ Type: `Function`
264
+ Default: `undefined`
253
265
 
254
266
  Allow to filter `@import`. All filtered `@import` will not be resolved (left in the code as they were written).
255
267
 
@@ -263,15 +275,17 @@ module.exports = {
263
275
  test: /\.css$/i,
264
276
  loader: "css-loader",
265
277
  options: {
266
- import: (url, media, resourcePath) => {
267
- // resourcePath - path to css file
278
+ import: {
279
+ filter: (url, media, resourcePath) => {
280
+ // resourcePath - path to css file
268
281
 
269
- // Don't handle `style.css` import
270
- if (url.includes("style.css")) {
271
- return false;
272
- }
282
+ // Don't handle `style.css` import
283
+ if (url.includes("style.css")) {
284
+ return false;
285
+ }
273
286
 
274
- return true;
287
+ return true;
288
+ },
275
289
  },
276
290
  },
277
291
  },
@@ -283,9 +297,15 @@ module.exports = {
283
297
  ### `modules`
284
298
 
285
299
  Type: `Boolean|String|Object`
286
- Default: based on filename, `true` for all files matching `/\.module\.\w+$/i.test(filename)` regular expression, more information you can read [here](https://github.com/webpack-contrib/css-loader#auto)
300
+ Default: `undefined`
287
301
 
288
- Enables/Disables CSS Modules and their configuration.
302
+ Allows to enable/disable CSS Modules or ICSS and setup configuration:
303
+
304
+ - `undefined` - enable CSS modules for all files matching `/\.module\.\w+$/i.test(filename)` and `/\.icss\.\w+$/i.test(filename)` regexp.
305
+ - `true` - enable CSS modules for all files.
306
+ - `false` - disables CSS Modules for all files.
307
+ - `string` - disables CSS Modules for all files and set the `mode` option, more information you can read [here](https://github.com/webpack-contrib/css-loader#mode)
308
+ - `object` - enable CSS modules for all files, if `modules.auto` option is not specified, otherwise the `modules.auto` option will determine whether if it is CSS modules or not, more information you can read [here](https://github.com/webpack-contrib/css-loader#auto)
289
309
 
290
310
  The `modules` option enables/disables the **[CSS Modules](https://github.com/css-modules/css-modules)** specification and setup basic behaviour.
291
311
 
@@ -526,13 +546,12 @@ module.exports = {
526
546
  loader: "css-loader",
527
547
  options: {
528
548
  modules: {
529
- compileType: "module",
530
549
  mode: "local",
531
550
  auto: true,
532
551
  exportGlobals: true,
533
552
  localIdentName: "[path][name]__[local]--[hash:base64:5]",
534
553
  localIdentContext: path.resolve(__dirname, "src"),
535
- localIdentHashPrefix: "my-custom-hash",
554
+ localIdentHashSalt: "my-custom-hash",
536
555
  namedExport: true,
537
556
  exportLocalsConvention: "camelCase",
538
557
  exportOnlyLocals: false,
@@ -544,50 +563,26 @@ module.exports = {
544
563
  };
545
564
  ```
546
565
 
547
- ##### `compileType`
548
-
549
- Type: `'module' | 'icss'`
550
- Default: `'module'`
551
-
552
- Controls the level of compilation applied to the input styles.
553
-
554
- The `module` handles `class` and `id` scoping and `@value` values.
555
- The `icss` will only compile the low level `Interoperable CSS` format for declaring `:import` and `:export` dependencies between CSS and other languages.
556
-
557
- ICSS underpins CSS Module support, and provides a low level syntax for other tools to implement CSS-module variations of their own.
558
-
559
- **webpack.config.js**
560
-
561
- ```js
562
- module.exports = {
563
- module: {
564
- rules: [
565
- {
566
- test: /\.css$/i,
567
- loader: "css-loader",
568
- options: {
569
- modules: {
570
- compileType: "icss",
571
- },
572
- },
573
- },
574
- ],
575
- },
576
- };
577
- ```
578
-
579
566
  ##### `auto`
580
567
 
581
568
  Type: `Boolean|RegExp|Function`
582
- Default: `'true'`
569
+ Default: `undefined`
570
+
571
+ Allows auto enable CSS modules/ICSS based on filename when `modules` option is object.
583
572
 
584
- Allows auto enable CSS modules based on filename.
573
+ Possible values:
574
+
575
+ - `undefined` - enable CSS modules for all files.
576
+ - `true` - enable CSS modules for all files matching `/\.module\.\w+$/i.test(filename)` and `/\.icss\.\w+$/i.test(filename)` regexp.
577
+ - `false` - disables CSS Modules.
578
+ - `RegExp` - enable CSS modules for all files matching `/RegExp/i.test(filename)` regexp.
579
+ - `function` - enable CSS Modules for files based on the filename satisfying your filter function check.
585
580
 
586
581
  ###### `Boolean`
587
582
 
588
583
  Possible values:
589
584
 
590
- - `true` - enables CSS modules or interoperable CSS format, sets the [`modules.compileType`](#compiletype) option to `module` value for all files which satisfy `/\.module(s)?\.\w+$/i.test(filename)` condition or sets the [`modules.compileType`](#compiletype) option to `icss` value for all files which satisfy `/\.icss\.\w+$/i.test(filename)` condition
585
+ - `true` - enables CSS modules or interoperable CSS format, sets the [`modules.mode`](#mode) option to `local` value for all files which satisfy `/\.module(s)?\.\w+$/i.test(filename)` condition or sets the [`modules.mode`](#mode) option to `icss` value for all files which satisfy `/\.icss\.\w+$/i.test(filename)` condition
591
586
  - `false` - disables CSS modules or interoperable CSS format based on filename
592
587
 
593
588
  **webpack.config.js**
@@ -665,9 +660,16 @@ Default: `'local'`
665
660
 
666
661
  Setup `mode` option. You can omit the value when you want `local` mode.
667
662
 
663
+ Controls the level of compilation applied to the input styles.
664
+
665
+ The `local`, `global`, and `pure` handles `class` and `id` scoping and `@value` values.
666
+ The `icss` will only compile the low level `Interoperable CSS` format for declaring `:import` and `:export` dependencies between CSS and other languages.
667
+
668
+ ICSS underpins CSS Module support, and provides a low level syntax for other tools to implement CSS-module variations of their own.
669
+
668
670
  ###### `String`
669
671
 
670
- Possible values - `local`, `global`, and `pure`.
672
+ Possible values - `local`, `global`, `pure`, and `icss`.
671
673
 
672
674
  **webpack.config.js**
673
675
 
@@ -693,7 +695,7 @@ module.exports = {
693
695
 
694
696
  Allows set different values for the `mode` option based on a filename
695
697
 
696
- Possible return values - `local`, `global`, and `pure`.
698
+ Possible return values - `local`, `global`, `pure` and `icss`.
697
699
 
698
700
  **webpack.config.js**
699
701
 
@@ -732,7 +734,24 @@ Type: `String`
732
734
  Default: `'[hash:base64]'`
733
735
 
734
736
  Allows to configure the generated local ident name.
735
- See [loader-utils's documentation](https://github.com/webpack/loader-utils#interpolatename) for more information on options.
737
+
738
+ For more information on options see:
739
+
740
+ - [webpack template strings](https://webpack.js.org/configuration/output/#template-strings),
741
+ - [output.hashDigest](https://webpack.js.org/configuration/output/#outputhashdigest),
742
+ - [output.hashDigestLength](https://webpack.js.org/configuration/output/#outputhashdigestlength),
743
+ - [output.hashFunction](https://webpack.js.org/configuration/output/#outputhashfunction),
744
+ - [output.hashSalt](https://webpack.js.org/configuration/output/#outputhashsalt).
745
+
746
+ Supported template strings:
747
+
748
+ - [name] the basename of the resource
749
+ - [path] the path of the resource relative to the `compiler.context` option or `modules.localIdentContext` option.
750
+ - [file] - filename and path.
751
+ - [ext] - extension with leading .
752
+ - [hash] - the hash of the string, generated based on `localIdentHashSalt`, `localIdentHashFunction`, `localIdentHashDigest`, `localIdentHashDigestLength`, `localIdentContext`, `resourcePath` and `exportName`
753
+ - [<hashFunction>:hash:<hashDigest>:<hashDigestLength>] - hash with hash settings.
754
+ - [local] - original class.
736
755
 
737
756
  Recommendations:
738
757
 
@@ -790,12 +809,97 @@ module.exports = {
790
809
  };
791
810
  ```
792
811
 
793
- ##### `localIdentHashPrefix`
812
+ ##### `localIdentHashSalt`
794
813
 
795
814
  Type: `String`
796
815
  Default: `undefined`
797
816
 
798
817
  Allows to add custom hash to generate more unique classes.
818
+ For more information see [output.hashSalt](https://webpack.js.org/configuration/output/#outputhashsalt).
819
+
820
+ **webpack.config.js**
821
+
822
+ ```js
823
+ module.exports = {
824
+ module: {
825
+ rules: [
826
+ {
827
+ test: /\.css$/i,
828
+ loader: "css-loader",
829
+ options: {
830
+ modules: {
831
+ localIdentHashSalt: "hash",
832
+ },
833
+ },
834
+ },
835
+ ],
836
+ },
837
+ };
838
+ ```
839
+
840
+ ##### `localIdentHashFunction`
841
+
842
+ Type: `String`
843
+ Default: `md4`
844
+
845
+ Allows to specify hash function to generate classes .
846
+ For more information see [output.hashFunction](https://webpack.js.org/configuration/output/#outputhashfunction).
847
+
848
+ **webpack.config.js**
849
+
850
+ ```js
851
+ module.exports = {
852
+ module: {
853
+ rules: [
854
+ {
855
+ test: /\.css$/i,
856
+ loader: "css-loader",
857
+ options: {
858
+ modules: {
859
+ localIdentHashFunction: "md4",
860
+ },
861
+ },
862
+ },
863
+ ],
864
+ },
865
+ };
866
+ ```
867
+
868
+ ##### `localIdentHashDigest`
869
+
870
+ Type: `String`
871
+ Default: `hex`
872
+
873
+ Allows to specify hash digest to generate classes.
874
+ For more information see [output.hashDigest](https://webpack.js.org/configuration/output/#outputhashdigest).
875
+
876
+ **webpack.config.js**
877
+
878
+ ```js
879
+ module.exports = {
880
+ module: {
881
+ rules: [
882
+ {
883
+ test: /\.css$/i,
884
+ loader: "css-loader",
885
+ options: {
886
+ modules: {
887
+ localIdentHashDigest: "base64",
888
+ },
889
+ },
890
+ },
891
+ ],
892
+ },
893
+ };
894
+ ```
895
+
896
+ ##### `localIdentHashDigestLength`
897
+
898
+ Type: `Number`
899
+ Default: `20`
900
+
901
+ Allows to specify hash digest length to generate classes.
902
+ For more information see [output.hashDigestLength](https://webpack.js.org/configuration/output/#outputhashdigestlength).
799
903
 
800
904
  **webpack.config.js**
801
905
 
@@ -808,7 +912,7 @@ module.exports = {
808
912
  loader: "css-loader",
809
913
  options: {
810
914
  modules: {
811
- localIdentHashPrefix: "hash",
915
+ localIdentHashDigestLength: 5,
812
916
  },
813
917
  },
814
918
  },
@@ -1037,39 +1141,14 @@ module.exports = {
1037
1141
  };
1038
1142
  ```
1039
1143
 
1040
- ### `sourceMap`
1041
-
1042
- Type: `Boolean`
1043
- Default: depends on the `compiler.devtool` value
1044
-
1045
- By default generation of source maps depends on the [`devtool`](https://webpack.js.org/configuration/devtool/) option. All values enable source map generation except `eval` and `false` value.
1046
-
1047
- **webpack.config.js**
1048
-
1049
- ```js
1050
- module.exports = {
1051
- module: {
1052
- rules: [
1053
- {
1054
- test: /\.css$/i,
1055
- loader: "css-loader",
1056
- options: {
1057
- sourceMap: true,
1058
- },
1059
- },
1060
- ],
1061
- },
1062
- };
1063
- ```
1064
-
1065
1144
  ### `importLoaders`
1066
1145
 
1067
1146
  Type: `Number`
1068
1147
  Default: `0`
1069
1148
 
1070
- Enables/Disables or setups number of loaders applied before CSS loader.
1149
+ Allows to enables/disables or setups number of loaders applied before CSS loader for `@import` at-rules, CSS modules and ICSS imports, i.e. `@import`/`composes`/`@value value from './values.css'`/etc.
1071
1150
 
1072
- The option `importLoaders` allows you to configure how many loaders before `css-loader` should be applied to `@import`ed resources.
1151
+ The option `importLoaders` allows you to configure how many loaders before `css-loader` should be applied to `@import`ed resources and CSS modules/ICSS imports.
1073
1152
 
1074
1153
  **webpack.config.js**
1075
1154
 
@@ -1101,6 +1180,31 @@ module.exports = {
1101
1180
 
1102
1181
  This may change in the future when the module system (i. e. webpack) supports loader matching by origin.
1103
1182
 
1183
+ ### `sourceMap`
1184
+
1185
+ Type: `Boolean`
1186
+ Default: depends on the `compiler.devtool` value
1187
+
1188
+ By default generation of source maps depends on the [`devtool`](https://webpack.js.org/configuration/devtool/) option. All values enable source map generation except `eval` and `false` value.
1189
+
1190
+ **webpack.config.js**
1191
+
1192
+ ```js
1193
+ module.exports = {
1194
+ module: {
1195
+ rules: [
1196
+ {
1197
+ test: /\.css$/i,
1198
+ loader: "css-loader",
1199
+ options: {
1200
+ sourceMap: true,
1201
+ },
1202
+ },
1203
+ ],
1204
+ },
1205
+ };
1206
+ ```
1207
+
1104
1208
  ### `esModule`
1105
1209
 
1106
1210
  Type: `Boolean`
@@ -1243,29 +1347,13 @@ module.exports = {
1243
1347
  };
1244
1348
  ```
1245
1349
 
1246
- **For webpack v4:**
1350
+ ### Extract
1247
1351
 
1248
- **webpack.config.js**
1352
+ 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.
1249
1353
 
1250
- ```js
1251
- module.exports = {
1252
- module: {
1253
- rules: [
1254
- {
1255
- test: /\.css$/i,
1256
- use: ["style-loader", "css-loader"],
1257
- },
1258
- {
1259
- test: /\.(png|jpe?g|gif|svg|eot|ttf|woff|woff2)$/i,
1260
- loader: "url-loader",
1261
- options: {
1262
- limit: 8192,
1263
- },
1264
- },
1265
- ],
1266
- },
1267
- };
1268
- ```
1354
+ - 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.
1355
+
1356
+ - 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
1269
1357
 
1270
1358
  ### Pure CSS, CSS modules and PostCSS
1271
1359
 
@@ -1287,7 +1375,7 @@ module.exports = {
1287
1375
  {
1288
1376
  loader: "css-loader",
1289
1377
  options: {
1290
- // Run `postcss-loader` on each CSS `@import`, do not forget that `sass-loader` compile non CSS `@import`'s into a single file
1378
+ // Run `postcss-loader` on each CSS `@import` and CSS modules/ICSS imports, do not forget that `sass-loader` compile non CSS `@import`'s into a single file
1291
1379
  // If you need run `sass-loader` and `postcss-loader` on each CSS `@import` please set it to `2`
1292
1380
  importLoaders: 1,
1293
1381
  },
@@ -1308,14 +1396,6 @@ module.exports = {
1308
1396
  // More information here https://webpack.js.org/guides/asset-modules/
1309
1397
  type: "asset",
1310
1398
  },
1311
- // For webpack v4
1312
- // {
1313
- // test: /\.(png|jpe?g|gif|svg|eot|ttf|woff|woff2)$/i,
1314
- // loader: "url-loader",
1315
- // options: {
1316
- // limit: 8192,
1317
- // },
1318
- // },
1319
1399
  ],
1320
1400
  },
1321
1401
  };
@@ -1356,7 +1436,7 @@ module.exports = {
1356
1436
 
1357
1437
  ### Separating `Interoperable CSS`-only and `CSS Module` features
1358
1438
 
1359
- The following setup is an example of allowing `Interoperable CSS` features only (such as `:import` and `:export`) without using further `CSS Module` functionality by setting `compileType` option for all files that do not match `*.module.scss` naming convention. This is for reference as having `ICSS` features applied to all files was default `css-loader` behavior before v4.
1439
+ The following setup is an example of allowing `Interoperable CSS` features only (such as `:import` and `:export`) without using further `CSS Module` functionality by setting `mode` option for all files that do not match `*.module.scss` naming convention. This is for reference as having `ICSS` features applied to all files was default `css-loader` behavior before v4.
1360
1440
  Meanwhile all files matching `*.module.scss` are treated as `CSS Modules` in this example.
1361
1441
 
1362
1442
  An example case is assumed where a project requires canvas drawing variables to be synchronized with CSS - canvas drawing uses the same color (set by color name in JavaScript) as HTML background (set by class name in CSS).
@@ -1375,19 +1455,19 @@ module.exports = {
1375
1455
  exclude: /\.module\.scss$/,
1376
1456
  use: [
1377
1457
  {
1378
- loader: 'style-loader'
1458
+ loader: "style-loader",
1379
1459
  },
1380
1460
  {
1381
- loader: 'css-loader',
1461
+ loader: "css-loader",
1382
1462
  options: {
1383
1463
  importLoaders: 1,
1384
1464
  modules: {
1385
- compileType: 'icss'
1386
- }
1387
- }
1465
+ mode: "icss",
1466
+ },
1467
+ },
1388
1468
  },
1389
1469
  {
1390
- loader: 'sass-loader'
1470
+ loader: "sass-loader",
1391
1471
  },
1392
1472
  ],
1393
1473
  },
@@ -1397,24 +1477,25 @@ module.exports = {
1397
1477
  test: /\.module\.scss$/,
1398
1478
  use: [
1399
1479
  {
1400
- loader: 'style-loader'
1480
+ loader: "style-loader",
1401
1481
  },
1402
1482
  {
1403
- loader: 'css-loader',
1483
+ loader: "css-loader",
1404
1484
  options: {
1405
1485
  importLoaders: 1,
1406
1486
  modules: {
1407
- compileType: 'module'
1408
- }
1409
- }
1487
+ mode: "local",
1488
+ },
1489
+ },
1410
1490
  },
1411
1491
  {
1412
- loader: 'sass-loader'
1492
+ loader: "sass-loader",
1413
1493
  },
1414
1494
  ],
1415
1495
  },
1416
1496
  // --------
1417
1497
  // ...
1498
+ ],
1418
1499
  },
1419
1500
  };
1420
1501
  ```